Cra*_*lus 0 java queue multithreading event-handling executorservice
我有一个要处理的事件队列.线程将事件添加到队列中.
我创建了一个可运行的Task,在该run方法中执行处理事件所需的所有操作.
我已经宣布了Executors.newCachedThreadPool();我和execute每个任务.
public class EventHandler {
private static final ExecutorService handlers = Executors.newCachedThreadPool();
public void handleNextEvent(AnEvent event){
handlers.execute(new Task(evt));
}
public class Task implements Runnable{
@Override
public void run() {
//Event processing
}
}
public AnotherClass{
public void passEvent(AnEvent evt)//This is called by another thread
{
EventHandler.handleNextEvent(evt);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我调用execute执行程序,我的代码将获得下一个事件并通过执行程序运行下一个runnable.我的目的是仅在上一个任务结束后才从队列中处理下一个事件.
我怎么知道前一个任务已经完成,所以我知道我可以再次调用handleNextEvent?
是否有一个状态字段由任务更新一个好主意?
谢谢
| 归档时间: |
|
| 查看次数: |
3929 次 |
| 最近记录: |