jma*_*erx 0 java queue multithreading
这是我想要做的.
我想拥有一个具有队列并启动线程的对象.另一个线程可以通过执行object.addWork(work)来推送到该队列;
这会将工作推入队列并在线程休眠时唤醒它.然后,线程对队列中的每个对象执行工作,直到队列为空.
一旦队列为空并且不再剩余工作,该线程就会休眠并需要通过再次添加到队列来唤醒.
是否有一种线程安全的方式来制作这样的对象?
你基本上想要Executors.newSingleThreadExecutor做什么
class YouNameIt{
private ExecutorService executor;
public void start(){
executor = Executors.newSingleThreadExecutor();
}
public void put(Object o){
executor.submit(new Runnable() {
@Override
public void run() {
process(o);
}
});
}
private void process(Object o) {
//Put your processing here
}
public void stop(){
executor.shutdown();
}
}
Run Code Online (Sandbox Code Playgroud)