005*_*005 7 java queue multithreading threadpool
是否存在以下Java类:
一个朴素的Map解决方案很容易解决(1),但很难管理(2).类似地,我所知道的所有线程池类都将从单个队列中拉出,这意味着(1)不能保证.
欢迎涉及外部库的解决方案.
如果您找不到开箱即用的工具,那么自己开发应该不难。您可以做的一件事是将每个任务包装在一个简单的类中,该类读取每个 id 唯一的队列,例如:
public static class SerialCaller<T> implements Callable<T> {
private final BlockingQueue<Caller<T>> delegates;
public SerialCaller(BLockingQueue<Caller<T>> delegates) {
this.delegates = delegates;
}
public T call() throws Exception {
return delegates.take().call();
}
}
Run Code Online (Sandbox Code Playgroud)
维护 id 到队列的映射以用于提交任务应该很容易。满足条件(1),然后你可以寻找条件(2)的简单解决方案,例如Executors。新的固定线程池
| 归档时间: |
|
| 查看次数: |
1674 次 |
| 最近记录: |