现在是这样一个问题:
有一个队列,然后队列里面会有任务。然后有一个模块会从这个队列里取走任务,执行。
现在有二种设计:
一种是开指定个数个线程轮询这个队列。取到任务后执行。执行完再轮询。
一种是开一个线程去轮询队列,取到任务后组装成一个Runbale对象交给执行线程池执行。当然执行线程池也限制了任务的最大数目。剩余的在线程池里面排队。
只对着二种设计做比较。哪种较好。理由。
线程问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
11条回答 默认 最新
- Jeff-HT-Lee 2012-08-17 17:22关注
第一种复杂,不推荐。队列会被多个线程竞争,这样就要同步线程,搞不好就会死锁。
第二种是一般做法,相比第一种没有资源竞争的情况。而且JDK1.5中已经实现了,利用BlockingQueue和Executor框架很容易搞定。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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