非阻塞算法简介:介绍如何使用原子变量而不是锁实现并发算法。
当读取非阻塞通道时,把它写到正由第二个线程消费的管道。
除了不会阻塞之外,非阻塞读不能给呼叫方任何保证。
最妙的是,当运行在Jetty下时,DWR能够自动检测并切换为使用Contiuations,实现非阻塞Comet。
非阻塞版本相对于基于锁的版本有几个性能优势。
因为当全部读取消息时,非阻塞通道没有给出任何提示,所以强制我们在协议层处理这一情况。
尽管我们当然将把注意力放在以非阻塞方式使用通道上,但通道可以以阻塞方式或非阻塞方式使用。
非阻塞调用在设计用户界面时以及服务调用非常费时的情况下很有用。
在非阻塞模式中,线程将读取已经可用的数据(不论多少),然后返回执行其它任务。
数据是以非阻塞方式从通道中读取的,并被写到Client对象中。
createPipe子例程是从使用线程的管道中进行无阻塞读取的简单方法。
在第2章中,研究在贝努里信元到达模型下,内部无阻塞交换机的性能分析。
非阻塞算法通常叫作乐观算法,因为它们继续操作的假设是不会有干扰。
如果深入JVM和操作系统,会发现非阻塞算法无处不在。
你可以为客户端提供一个nonblockingAPI,这样它就可以把请求传递给SOAP引擎,继续做其他工作。
对于NIO,非阻塞读写是必要的,但它们并不是完全没有麻烦。
下面的许多文章阐述了NIO的基本知识及如何利用非阻塞通道的好处。
开发非阻塞算法是相当专业的训练,而且要证明算法的正确也极为困难。
才可以有效地避免阻塞与非阻塞过程赋值的误用。