1
2
您可以为每个组创建队列,当任务终止时,您可以读取相应的队列,并在需要时提交下一个任务。 为此,您需要确定Runnable何时终止。对于标准的JDK类,您不能以简单的方式实现这一点,而是使用 Guava 库,您可以将ExecutorService包装为ListeningExecutorServices。如果您通过此包装器提交任务,它将返回 ListenableFuture 而不是简单的Java Future。ListenableFuture将允许您注册将在任务终止时执行的回调。在这些回调中,您可以检查队列并提交同一组中的下一个任务。 |
2
0
对于每个Id,您需要一个轻量级的SerialExecutor,如中所述 JavaDocs of Executor 该实现不是最优的——对于每个输入任务,它都会创建额外的服务Runnable。优化版本可在 https://github.com/akaigoro/CodeSamples/blob/master/src/main/java/actor/serialexec/SerialExecutor.java ,其中SerialExecutor充当中间可运行程序,并在空闲时重新提交自己,并出现新任务。 |
RoddyRott · 如何监视AWS中的线程 6 年前 |
John · 非阻塞http客户端与使用独立线程池的阻塞http客户端 6 年前 |
Yomal · 在java中,如何知道线程池的任务何时结束 7 年前 |
Hymir · 用于挂起线程的C++线程池 7 年前 |
WeInThis · Python-将线程转换为多处理 7 年前 |