不知道各位大侠的线程池是怎么做的。
因为我线程池要统计每个线程的任务数量,但是对加锁一直不是很明白到底怎么加锁才算好。
对于每个需要投递的任务,我线程池使用快排来找到任务最少的那个线程,然后投递给那个线程任务队列的末尾,我也不清楚哪种投递方式或者算法更好,求指教有没有哪位大侠分享下或者说说哪个开源库代码的什么地方有这方面的技术 最好说下哪个原文件 谢谢

解决方案 »

  1.   

    你的线程池设计有问题   不应该是每个线程一个任务队列  难道你保证每个任务执行时间一样?举个极端的例子  A线程有10个任务等着  B线程有100个任务等着  这时你一个新任务明明很快执行的按你的算法分到A去了吧? 假设A里的10个任务要执行10分钟呢? B 100个任务只要执行1分钟  这不是好比去超时结账 明明其他窗口已经没人了  你只能继续等前面的人弄完才轮到你 你应该为所有任务建立一个任务队列  线程池只负责去队列取任务找现在空闲的线程去执行就行了  
      

  2.   

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