我有一台接受客户端数据的服务器。数据以不规则的间隔进入大块。我有一个线程保持连接打开,从缓冲区读取数据并将其放入队列。我有另一个线程提取请求,为计算做好准备,然后将它们交给工作线程。发信号通知多个线程同时开始工作
我有4个工作线程。这是一个生产者 - 消费者场景。我必须为每个线程的逻辑制定出来,但我需要弄清楚如何做到这一点的场景:
1)生产回升,并准备请求
2)生产者信号的工作线程运行,去睡觉
3)所有的工作线程完成后,信号产生唤醒和处理结果,工人们睡觉
4)重复
如何信号中的所有工人醒过来?我不能使用信号量,因为我需要让所有4名工作人员同时运行。我也不想删除工作完成后的工作,并为每个请求创建新的工作(我想重用线程)。
每个工人都有while(true)
循环。我想在循环开始时停止每个线程,然后在生产者中唤醒它们,等待它们全部完成并且在while循环信号生成器的末尾。
显然没有忙等待,那只是不好的。
你现在怎么做?显示你的代码。 – this
使用信号量,这是更简单的方法...向我们展示你的信息,我会告诉你我的 –