基本上我的程序有2套线程,工人和工作。每个作业都有一个到达时间,然后将其推送到队列中。多线程程序
对于服务器,我希望他们不断地在队列中寻找工作,一旦队列中有工作,只有1名工作人员将其关闭并完成其工作。
主要是,首先创建所有的工作线程,然后创建并同步作业线程(每个工作线程推入队列中的东西)。由于工作线程有时在同一时间完成任务,或者没有在正确的时间将工作推送到队列中,所以我无法获得正确的时间安排(即:到达时间3的工作在到达时间之前被推送到工作中2)。 我该如何使用信号量和/或互斥锁来做到这一点?
我试图把一个互斥体的工人功能,但我真的没有互斥锁/信号灯办理好..
任何想法,将不胜感激。
谢谢!
你的术语是痛苦的。用server = worker,client = job,client thread = server重写。 – 2011-02-19 01:27:16
呃。除了使用`std :: cout`,这是纯粹的C代码。你知道C++不仅仅是一个C插件吗?如果你非常喜欢C语言,甚至可以在C++不需要它的地方使用`struct`关键字,但是C可以,那么为什么不放弃流以支持`printf()`等等,并且使用纯C呢?因为它使得C群使用流而使C不高兴,而使用C的C++群体除了流之外。 – sbi 2011-02-19 01:43:20