在多线程情况下,如果不使用条件变量、锁和sleep(sleep时间之中任务可能就来了,那么就不能及时的处理),那么如何让没有任务的线程陷入阻塞,并且能够在分配任务立即处理任务?
5条回答 默认 最新
- 想要AC的dly 2023-07-13 11:40关注
可以考虑使用wait()和notify()方法进行线程间的通信和同步。
在每个线程的执行逻辑中:
循环执行以下步骤:
调用getTask()方法从队列中获取任务。
如果队列中没有任务,调用waitForTask()方法进入等待状态。
处理获取到的任务。
当有新任务需要分配时,调用addTask(task)方法将任务添加到队列中,并调用notifyForNewTask()方法唤醒一个线程。
解决 无用评论 打赏 举报
悬赏问题
- ¥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