起首是近似的案例,好比說列隊買票的問題,假若有20小我一路買票,只有兩個窗口,怎么實現
闡發:
人=線程
2個窗口--資本
在窗口買票=線程正在執行
分開線程執行完畢
期待買票=線程梗阻
起首明白旌旗燈號量Semaphore的用法,然后新建一個項目,new-->file-->class,隨意定名,此處定名為semaphoreDemo
 起首起頭一個線程MyTask,實現接口,然后在此中界說窗口買票的流程,本家兒要有進入,買完了,分開,然后釋放旌旗燈號量,讓下一個進入
 然后設心猿意馬一個旌旗燈號量,本家兒如果執行函數,此處界說窗口個數,然后界說線程池ExecutorService,輪回執行這20小我
 最后經由過程main函數挪用execute函數進行列隊問題,起頭列隊線程
 在打印中可以看到兩個線程在并發執行,剩下的人處于列隊狀況,只有上一個執行完了下一個才執行
 0 篇文章
如果覺得我的文章對您有用,請隨意打賞。你的支持將鼓勵我繼續創作!