生產者消費者模式
我們都在肯德基裡面吃過東西,kfc一般都很忙,別問我是怎麼知道的,我以前可是kfc優秀員工,他們先把漢堡、薯條、雞翅什麼都準備好放在乙個架子上,然後顧客過來買東西,前台員工只需要把顧客點的東西裝起來拿給顧客就好了。那個架子就是圖上的庫。這樣就可以實現解耦,我生產我的東西,你買你的東西,我們互不干涉。
生產者消費者有兩解決方式:
第一種管程法,生產者只生產資料,放進入訊息佇列裡面,也就是緩衝區,消費只需處理資料,兩者互不影響實現解耦提,,還可以解決閒時太閒,忙時太忙,比如生產者生產資料慢時,緩衝區可以應一下急,不應響消費者處理資料,這樣就可以提高效率。這是利用容器的來做的。
還有一種是紅綠燈標識法,想一我們平時怎麼過紅綠燈的,那種不看紅綠燈的是當 我沒說。看到紅燈人停下車走,看到綠燈的時候的人走車停,這就是紅綠燈法。
Linux併發(多執行緒協作)
乙個程式裡的執行緒數,就像一家公司裡的員工數一樣,太少了忙不過來,太多了入不敷出。因此我們需要有更好的機制來協調它們。拓展 最理想的情況是 讓程序有一些初始數目的執行緒 所謂的執行緒池 當沒有任務的時候這些執行緒自動進入睡眠,有了任務他們會立即執行任務,不斷迴圈。程序還應該可以根據自身任務的繁重與否...
多執行緒 23 併發協作 管程法
併發協作模型生產者消費者模式的第一種管程法,它的核心要點是加了緩衝區,有了緩衝區之後,生產者和消費者之間解耦了,比如超市的中間商,生產者向中間商發商品,超市向中間商進商品,而生產者並不知道商品買給誰了。分析這個模型有幾個角色 第乙個角色生產者,第二個角色消費者,它們兩個是多執行緒,第三個是併發容器也...
多執行緒併發
多執行緒併發主要有3個方面 1 同步器 主要有synchronized,reentrantlock 訊號量,門栓 countdownlatch 障柵 cyclicbarrier 交換器。2 同步容器 主要包括 對映 集 佇列 對映 concurrenthashmap,concurrentskipli...