我想使用 Java 中的 ExecutorService
实现以下行为。我有大量任务要完成,这些任务都可以并行完成。我想按以下方式从我的主线程中安排 N 个任务:
- 如果 Activity 任务的数量是 < N => 安排新任务(执行服务已经这样做了)
- 否则,在主线程上阻塞,直到完成其中一个任务 => 与将 N 个第一个任务存储在队列中然后将第一个任务出列并对其调用 get() 几乎相同)
有没有办法调整 ExecutorService 来执行上述操作?
最佳答案
使用 N 个线程的 ThreadPoolExecutor,用 SynchronousQueue 构造。每次您向线程池提交任务时,主线程都会被同步队列阻塞,直到池中的线程从队列中获取任务。
关于Java - 固定数量任务的ExecutorService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882115/