1、首先明確信號量Semaphore的用法,然後新建壹個項目,new-->file-->class,隨意命名,此處命名為semaphoreDemo。
2、首先開始壹個線程MyTask,實現接口,然後在其中定義窗口買票的流程,主要有進入,買完了,離開,釋放信號量,讓下壹個進入。
3、然後設定壹個信號量,主要是執行函數,此處定義窗口個數,定義線程池ExecutorService,循環執行這20個人。
4、最後通過main函數調用execute函數進行排隊問題,開始排隊線程。
5、在打印中可以看到兩個線程在並發執行,剩下的人處於排隊狀態,只有上壹個執行完了下壹個才執行。