标签 '异步调用'

Java异步调用中的Future

Future是什么? 最近写了一些关于netty的相关代码,发现类似netty 的这种异步框架大量的使用一个Future的类。利用这个Futuer类可以实现,代码的异步调用,程序调用耗时的网络或者IO相关的方法的时候,首先获得一个Future的代理类,同时线程并不会被阻塞。继续执行之后的逻辑,直到真正要使用远程调用返回的结果的时候,才需要调用Futuer的get()方法。这样可以提高代码的执行效率。 于是就花了一点时间研究Futuer是如何实现的。调用方式如何知道,结果什么时候返回的呢?如果使用一个线程去轮询flag 标记?那么就很难及达到及时获取新状态,又降低性能开销。所以我们需要了解java的等待通知机制。利用这个机制来构建一个节能环保的Future。等待通知机制一个线程修改了一个对象的...

阅读全文