Atitit.异步编程技术原理与实践attilax总结
1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await
2. 事件(中断)机制
3. Await 模式(推荐)
Java中的是个futureTask走十.net 中的task..
java还没语法级别的await,,只可以当库的模式实现..
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
4. Java的实现模式futuretask 对于c#的task类库(推荐)
它使用Future接口来代表下载任务,作为异步执行的任务模型,它有很大的局限性。Future允许客户端询问任务执行的结果,如果必要的话,将会产生阻塞,另外还可以询问任务的状态,判断它已经完成还是被取消了。但是,Future本身并不能提供回调方法,假设能够这样做的话,当每个图片下载完成的时候,就能通知页面的渲染线程了。
4.1. 使用Java 8的CompletableFuture实现函数式的回调.htm
CompletableFuture.runAsync(() ->
renderImage(infoToData.apply(imageInfo)), executor));
5. Timer模式
如果完成某个计时器任务的时间太长,那么它会“独占”计时器的任务执行线程,从而可能延迟后续任务的执行
所有 Timer 都使用一个共享线程(由第一个执行操作的 Timer 对象创建)执行等待,但是 Timer 的动作事件处理程序还会在其他线程(事件指派线程上)执行。 。java.util.Timer 简单理解,javax.swing.Timer没有增加线程,利用事件线程的间隙运行,java.util.Timer增加线程了。
本回答由电
6. Thread模式(不推荐,太底层)
使用Java 8的CompletableFuture实现函数式的回调.htm
atiend