cpszgy 2012-08-17 14:52
浏览 291
已采纳

线程问题

现在是这样一个问题:
有一个队列,然后队列里面会有任务。然后有一个模块会从这个队列里取走任务,执行。
现在有二种设计:
一种是开指定个数个线程轮询这个队列。取到任务后执行。执行完再轮询。
一种是开一个线程去轮询队列,取到任务后组装成一个Runbale对象交给执行线程池执行。当然执行线程池也限制了任务的最大数目。剩余的在线程池里面排队。
只对着二种设计做比较。哪种较好。理由。

  • 写回答

11条回答 默认 最新

  • Jeff-HT-Lee 2012-08-17 17:22
    关注

    第一种复杂,不推荐。队列会被多个线程竞争,这样就要同步线程,搞不好就会死锁。

    第二种是一般做法,相比第一种没有资源竞争的情况。而且JDK1.5中已经实现了,利用BlockingQueue和Executor框架很容易搞定。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable