中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中Semaphore的使用方法

發布時間:2021-07-13 14:58:05 來源:億速云 閱讀:202 作者:chen 欄目:大數據

本篇內容主要講解“Java中Semaphore的使用方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Java中Semaphore的使用方法”吧!

Semaphore的作用是控制線程的并發數量。在簡單點的解釋就是如果我們開始了10個線程都在處理任務,如果我們用到的Semaphore,那么可以讓這10個并發任務執行的時候可以只同時執行2個。因為Semaphore的構造方法里需要傳遞一個int類型的參數,這個參數就是控制線程可以允許的同時并發數。

Java中Semaphore的使用方法

Java中Semaphore的使用方法

Java中Semaphore的使用方法

上述代碼我們同時開啟了3個線程,因為我們沒有加同步方法所以這3個開啟的線程是異步執行的。那么在實際的任務開發中,如果我們需要控制多線程的并發數量應該怎么辦呢?例如我們在操作IO的時候可能會因為系統的內存或者磁盤等因素,導致我們的CPU占有率很高,這時我們就要調整線程的同時并發數,否則系統可能會卡死。這時我們就會用到Semaphore。它的使用方法也比較簡單,當調用acquire()方法時,就是會獲取由Semaphore頒發的許可證,當調用release()方法時就會把獲取的許可證歸還。Semaphore中的許可證數量是由創建Semaphore對象的構造方法的參數決定的。參數值是多少,就有多少個許可證,有多少個許可證,就可以同時有多少個線程并發執行,因為沒有獲得許可證的線程則不會執行。

Java中Semaphore的使用方法

Java中Semaphore的使用方法

我們看輸出雖然我們開啟了3個線程,但同時執行的線程任務只有2個,原因就是我們設置的Semaphore構造函數的參數為2。也就是說同時執行的任務只能是2個,如果有一個線程的任務已經執行完了,那么另一個線程才會執行。原因是上一個線程已經將許可證歸還了,當前線程可以重新獲取到許可證了。

到此,相信大家對“Java中Semaphore的使用方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开化县| 禄劝| 桐梓县| 兴山县| 台前县| 高碑店市| 乡宁县| 西畴县| 江北区| 嵊泗县| 巴中市| 奈曼旗| 商城县| 普宁市| 麻栗坡县| 长葛市| 兰考县| 洛扎县| 偏关县| 浦城县| 泗阳县| 东台市| 尤溪县| 汶上县| 新沂市| 宁安市| 唐山市| 房山区| 广元市| 常州市| 台中市| 濮阳县| 五台县| 凤山县| 正蓝旗| 镇巴县| 武汉市| 高雄市| 嘉善县| 东兰县| 科技|