中文字幕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

九台市| 竹溪县| 溧阳市| 汉中市| 巩留县| 威远县| 伊春市| 西乡县| 虞城县| 陇川县| 安吉县| 疏附县| 临泉县| 芦山县| 大宁县| 鄄城县| 遵义县| 嘉义县| 桐乡市| 海门市| 漠河县| 固镇县| 青浦区| 吴川市| 驻马店市| 平果县| 连平县| 新安县| 即墨市| 芜湖县| 娄烦县| 山丹县| 惠东县| 开鲁县| 贞丰县| 郧西县| 静宁县| 双城市| 克拉玛依市| 海安县| 丹棱县|