我是多线程技术的新手,正在从事与此主题相关的作业。
我有一个线程,它根据定时时间表将事件发送到另一个线程。发送事件后,我得到了一个伪未来对象(我必须自己实现)。解决Future
对象后,我应该采取措施。但是,我不必等待,因为我必须准时醒来并按时发送每个事件。事件完成的顺序也不明。
我该怎么做才能对每个Future
响应做出及时反应,并根据计划及时发送事件?
谢谢。
部分实施:
public class Future<T> {
private T result;
boolean IsDone;
/**
* This should be the the only public constructor in this class.
*/
public Future();
public T get();
public T get(long timeout, TimeUnit unit);
public void resolve (T result) {
this.result=result;
IsDone=true;
}
/**
* @return true if this object has been resolved, false otherwise
*/
public boolean isDone() {
return IsDone;
}
答案 0 :(得分:0)
这是异步编程的经典任务。您可以使用多个异步过程调用来解决它。然后,所有这些调用都可以在单个线程执行器上运行。
因此,您应该使用回调,而不是Future,它是在收到答复时提交给线程池的Runnable。 要及时发送信号,请让您的单线程执行器的类型为ScheduledThreadPoolExecutor。