首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

线程池调度算法。该如何解决

2013-08-01 
线程池调度算法。?不知道各位大侠的线程池是怎么做的。因为我线程池要统计每个线程的任务数量,但是对加锁一

线程池调度算法。?
不知道各位大侠的线程池是怎么做的。
因为我线程池要统计每个线程的任务数量,但是对加锁一直不是很明白到底怎么加锁才算好。
对于每个需要投递的任务,我线程池使用快排来找到任务最少的那个线程,然后投递给那个线程任务队列的末尾,我也不清楚哪种投递方式或者算法更好,求指教

有没有哪位大侠分享下或者说说哪个开源库代码的什么地方有这方面的技术 最好说下哪个原文件 谢谢
[解决办法]
boost有线程池
[解决办法]
你是为每个线程创建了一个任务队列,我一般是创建一个任务队列,找空闲进程,知道就让线程运行,这样个人觉得延时小一些。
[解决办法]
你的线程池设计有问题   不应该是每个线程一个任务队列  难道你保证每个任务执行时间一样?

举个极端的例子  A线程有10个任务等着  B线程有100个任务等着  这时你一个新任务明明很快执行的

按你的算法分到A去了吧? 假设A里的10个任务要执行10分钟呢? B 100个任务只要执行1分钟  这不是

好比去超时结账 明明其他窗口已经没人了  你只能继续等前面的人弄完才轮到你 你应该为所有任务建立

一个任务队列  线程池只负责去队列取任务找现在空闲的线程去执行就行了  
[解决办法]

引用:
可是你的线程池要怎么设计才能同步呢?只有一个线程 要加锁? 怎么加锁 能否详细指教下。
我没想通你的任务队列是个什么才能达到同步执行而且不冲突!

在网上找spserver,开源代码,里面有线程池的实现,基于领导者-追随者模型实现的,
可以参考。

热点排行