paulwong

          Disruptor

          一個ring buffer實現多線程通信。由于他們之間通信不需要鎖所以性能有很大的提高。

          Disruptor更多的應用在高速事務中,利用JVM的偽內存,這也可能是它為LMAX而生的,和akka的應用場景不一樣。

          一般編寫并發應用程序馬上想到多線程或者多進程。但多線程需要處理資源競爭,共享訪問等問題,搞不好容易出現死鎖,當程序規模比較大時,排查難度很大。 Actor模型提供了另一種編寫并發應用程序的思路。 有點類似Node.JS的基于事件異步處理. (其實我覺得基于消息異步和基于事件異步是一回事)

          什么是基于消息異步呢?很簡單,比如要開展一個項目,需要多人協作。作為項目經理的你,只需要像手下發出命令,個人各干各的,互不干擾。做完了就回送一個消息給項目經理,項目經理再分派新的任務. (可能比喻得不恰當,但Actor的基本思路就是這樣,你不需要考慮資源共享和線程并發什么的, Actor庫屏蔽了這些底層的實現細節 . 每個Actor就相當于一個人或者叫一個處理者,他們的職責很單一,就是響應對方發來的消息,做出響應,并回送一個響應消息。 每個Actor負責做自己的份內事,最后有一個調度角色的Actor將所有Actor管理起來,形成一個整體)

          Akka 是針對Scala和Java的Actor庫,JActor是一個用純Java編寫的Actor庫。 

          https://github.com/LMAX-Exchange/disruptor
          http://www.oschina.net/p/disruptor

          posted on 2016-06-05 18:19 paulwong 閱讀(744) 評論(0)  編輯  收藏 所屬分類: DISRUPTOR


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 桦甸市| 温泉县| 曲靖市| 沅江市| 岑溪市| 松原市| 乌什县| 临江市| 信丰县| 龙山县| 沂源县| 阳新县| 扎兰屯市| 揭阳市| 西吉县| 青龙| 通化市| 翁牛特旗| 都昌县| 衡阳县| 米泉市| 临漳县| 壶关县| 洛隆县| 忻城县| 宝丰县| 苍南县| 疏勒县| 渝中区| 涪陵区| 鞍山市| 深州市| 邹城市| 滨州市| 额尔古纳市| 贵南县| 广丰县| 英德市| 武鸣县| 锦屏县| 呈贡县|