购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

6.1 传统的编程模型

传统的编程模型采用的是每条指令依次执行的方式,如果上一条指令没有执行完,当前线程将先等待,无论如何提升机器性能或者优化代码,都不能改变要得到响应结果需要等待的本质,即便是使用Java多线程编程,每个线程也是按照代码编写的先后顺序执行的。

在本例中,对c进行计算后,得到c的结果才能继续执行对d的计算,如果c长时间得不到结果(比如c是一个HTTP/RPC请求的响应结果),那么d就会被阻塞。

在执行程序时,为了提供性能,处理器和编译器常常会对指令进行重排序。重排序分为编译器重排序和处理器重排序两种。

· 编译器重排序:编译器保证不改变单线程执行结果的前提下,可以调整多线程语句执行顺序。

· 处理器重排序:如果不存在数据依赖性,处理器可以改变语句对应机器指令的执行顺序。

若要实现快速的响应,就得把程序执行指令的方式换一换——将同步方式改成异步方式,方法执行改成消息发送,因此诞生了响应式编程模型。 IKPfcknlElg82j7G4YK+NYKxAYqjAoKaAuk54zodjyDw8eVSmNYyC5kktZ6OiDfD

点击中间区域
呼出菜单
上一章
目录
下一章
×