Semaphore初識 java訊號量

2021-07-24 08:41:52 字數 465 閱讀 3355

朋友在寫**活動的時候,為了控制線程,用到了semaphore類 ,之前也是沒有用到過,就簡單認識一下它。

semaphore,是負責協調各個執行緒, 以保證它們能夠正確、合理的使用公共資源。也是作業系統中用於控制程序同步互斥的量。或者說,簡單的來講,就

是訊號量。

比如我們去網咖開機子上網(原諒樓主是個網癮少年),網咖總共只有100臺機子,也就是只可能有100個人同時上網,也就是訊號量為100,**表示

的話就是 static semaphore = new semaphore(100), 這個時候來了150個人要上網怎麼辦呢? 沒辦法,我這最多上100個人,給100個人加上憑證,讓他們

上網, **模擬下 、

for(int i=0;i<150;i++) catch (interruptedexception e) }

}只有有人下機後 才會有機器給後來的人用,而semaphore就是設定有幾台機器的

Java執行緒之Semaphore

之前一直對semaphore不是很理解,感覺它功能十分簡單,用lock加condition完全可以輕易替代它,覺得它根本沒有存在的必要。最近遇到乙個例子,用semaphore可以優雅的實現,用lock加condition卻讓我大費腦筋,主要原因是自己水平太菜。記錄下來,免得以後忘了。例子 某單位有3...

Java併發 Semaphore原理解析

今天主要是寫關於semaphore的原理及解析 一 semaphore的介紹 訊號量為多執行緒協作提供更強大的控制。從廣義上來講,是鎖的增強,synchronized reentrantlock只能對乙個執行緒加鎖,而訊號量可以對多個執行緒進行控制。二 semaphore的使用 semaphore ...

初識java演算法

引言 這是我對常用演算法的初步理解,如有不足敬請指正,謝謝!1.選擇排序法 初始陣列 63 4 24 1 3 15 第一次排序 4 24 1 3 15 63 第二次排序 4 1 3 15 24 63 第三次排序 4 1 3 15 24 63 第四次排序 1 3 4 15 24 63 第五次排序 1 ...