Atitit.异步编程技术原理与实践attilax总结

时间:2022-06-19 00:26:58

Atitit.异步编程技术原理与实践attilax总结

1. 俩种实现模式 类库方式,以及语言方式,java futuretask ,c# await1

2. 事件(中断)机制1

3. Await 模式(推荐)1

4. Java的实现模式futuretask 对于c#的task类库(推荐)1

4.1. 使用Java 8的CompletableFuture实现函数式的回调.htm2

5. Timer模式2

6. Thread模式(不推荐,太底层)2

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