Ale*_*987 6 java multithreading
假设我想创建一个基本上无限运行线程的对象.我希望线程在不需要他的情况下休眠,但是当需要完成某项工作时,它会唤醒线程 - 完成工作并重新进入休眠状态.我还希望将作业排队并按照它们到达的顺序执行.在cocoa/objective c中有一个NSOperationQueue.我想知道java是否有类似的东西.
你怎么看?
我会使用 ExecutorService 像
private final ExecutorService executor = Executors.newSingleThreadExecutor();
public void task(final int arg) {
executor.execute(new Runnable() {
@Override
public void run() {
// perform task using `arg`
}
});
}
Run Code Online (Sandbox Code Playgroud)
它有一个内置线程,当添加任务时该线程唤醒,当没有剩余任务时该线程休眠,这是一个用于队列任务的阻塞队列。