比如下载,起一个子线程去执行下载任务,主线程仍旧做自己的事情,当子线程完成了下载任务,则通过回调(策略模式、观察者模式)来通知主线程来执行会回调策略,这个过程中需注意:当异步回调返回到这个主线程时,这个主线程是否已经结束,不注意这点会崩溃的。且这个回调对象必须是static对象,即生命周期是整个应用程序,同时如果有多个子线程来完成各自的任务,那么就有执行的先后顺序和阻塞问题,因此一般需要一个阻塞队列(BlockingQueue)来管理这些子线程的运行和阻塞;这其实就是一个异步通信事件的最本质的东西了。