Rise877 2023-07-13 11:13 采纳率: 50%
浏览 15

多线程情况下,共享资源线程安全问题

在多线程情况下,如果不使用条件变量、锁和sleep(sleep时间之中任务可能就来了,那么就不能及时的处理),那么如何让没有任务的线程陷入阻塞,并且能够在分配任务立即处理任务?

  • 写回答

5条回答 默认 最新

  • 想要AC的dly 2023-07-13 11:40
    关注

    可以考虑使用wait()和notify()方法进行线程间的通信和同步。


    在每个线程的执行逻辑中:
    循环执行以下步骤:
    调用getTask()方法从队列中获取任务。
    如果队列中没有任务,调用waitForTask()方法进入等待状态。
    处理获取到的任务。


    当有新任务需要分配时,调用addTask(task)方法将任务添加到队列中,并调用notifyForNewTask()方法唤醒一个线程。

    评论

报告相同问题?

问题事件

  • 创建了问题 7月13日

悬赏问题

  • ¥60 Matlab联合CRUISE仿真编译dll文件报错
  • ¥15 脱敏项目合作,ner需求合作
  • ¥15 脱敏项目合作,ner需求合作
  • ¥30 Matlab打开默认名称带有/的光谱数据
  • ¥50 easyExcel模板 动态单元格合并列
  • ¥15 res.rows如何取值使用
  • ¥15 在odoo17开发环境中,怎么实现库存管理系统,或独立模块设计与AGV小车对接?开发方面应如何设计和开发?请详细解释MES或WMS在与AGV小车对接时需完成的设计和开发
  • ¥15 CSP算法实现EEG特征提取,哪一步错了?
  • ¥15 游戏盾如何溯源服务器真实ip?需要30个字。后面的字是凑数的
  • ¥15 vue3前端取消收藏的不会引用collectId