線程間的通訊

線程間的通訊對很多初學者來說過于抽象,不好理解。要想搞明白它們之間通訊的機制,最重要的就是先理解線程是什么,它是怎樣工作的。

琢磨了好久,想到了一個比較活潑的例子。線程是什么?線程是傻瓜勞動力,四肢發達,沒有頭腦。要想讓它做一些有利于生活的事情,必須得告訴它怎么做。所以有我們程序員寫代碼,我們寫的代碼,就是給線程做的指示,線程按照這些指示,一步一步往下走,直到做完為止。

在一個進程里會有很多線程,這些線程作為傻瓜勞動力,可以分享一些勞動資料。最常見的,就是多個線程,同時使用一個隊列,有的線程按照指示,往里放東西,有的線程按照指示從里邊拿東西。這一放一拿,線程和線程之間就交換了一些信息,從而實現了線程間的通訊。

最為經典的例子,就是兩個線程分享同一個隊列,一個是扮演生產者角色,一個是消費者角色。生產者執行一段生產代碼,往隊列里放消息。消費者從里邊拿出來,按照消費的算法處理這個消息。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.在指定線程上執行操作 [selfperformSelector:@selector(run)onThread:...
    笑熬齊澄閱讀 210評論 0 0
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,524評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 關于: JSPatch -- 熱修復BUG神器, 大公司會用它來做模塊更新, 而且配合React native會更...
    itonny閱讀 541評論 0 3
  • 致青春營銷特種兵五班學員 今天狀態不好,頭疼的厲害,手機卡,看到戰友們認真學習的態度打動了我,挺著也要完成作業,珍...
    眼貼閱讀 277評論 0 0