﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-paulwong-随笔分类-DISRUPTOR</title><link>http://www.blogjava.net/paulwong/category/55057.html</link><description /><language>zh-cn</language><lastBuildDate>Sun, 05 Jun 2016 10:20:46 GMT</lastBuildDate><pubDate>Sun, 05 Jun 2016 10:20:46 GMT</pubDate><ttl>60</ttl><item><title>Disruptor</title><link>http://www.blogjava.net/paulwong/archive/2016/06/05/430781.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 05 Jun 2016 10:19:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2016/06/05/430781.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/430781.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2016/06/05/430781.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/430781.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/430781.html</trackback:ping><description><![CDATA[一个ring buffer实现多线程通信。由于他们之间通信不需要锁所以性能有很大的提高。<br /><br />Disruptor更多的应用在高速事务中，利用JVM的伪内存，这也可能是它为LMAX而生的，和akka的应用场景不一样。<br /><br />一般编写并发应用程序马上想到多线程或者多进程。但多线程需要处理资源竞争，共享访问等问题，搞不好容易出现死锁，当程序规模比较大时，排查难度很大。 Actor模型提供了另一种编写并发应用程序的思路。 有点类似Node.JS的基于事件异步处理. （其实我觉得基于消息异步和基于事件异步是一回事）<br /><br />什么是基于消息异步呢？很简单，比如要开展一个项目，需要多人协作。作为项目经理的你，只需要像手下发出命令，个人各干各的，互不干扰。做完了就回送一个消息给项目经理，项目经理再分派新的任务.  （可能比喻得不恰当，但Actor的基本思路就是这样，你不需要考虑资源共享和线程并发什么的,  Actor库屏蔽了这些底层的实现细节 . 每个Actor就相当于一个人或者叫一个处理者，他们的职责很单一，就是响应对方发来的消息，做出响应，并回送一个响应消息。 每个Actor负责做自己的份内事，最后有一个调度角色的Actor将所有Actor管理起来,形成一个整体）<br /><br />Akka 是针对Scala和Java的Actor库，JActor是一个用纯Java编写的Actor库。&nbsp;<br /><br /><a href="https://github.com/LMAX-Exchange/disruptor" target="_blank">https://github.com/LMAX-Exchange/disruptor</a><br /><a href="http://www.oschina.net/p/disruptor" target="_blank">http://www.oschina.net/p/disruptor</a><img src ="http://www.blogjava.net/paulwong/aggbug/430781.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2016-06-05 18:19 <a href="http://www.blogjava.net/paulwong/archive/2016/06/05/430781.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>