亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

龙州县| 罗定市| 通辽市| 灵宝市| 寿光市| 观塘区| 金沙县| 明水县| 广汉市| 呼伦贝尔市| 琼海市| 洮南市| 高陵县| 北川| 海安县| 聂拉木县| 通化市| 海南省| 岑巩县| 南川市| 甘孜县| 乌鲁木齐县| 依安县| 灵宝市| 绍兴县| 饶河县| 隆化县| 永宁县| 泸溪县| 都昌县| 阜城县| 芒康县| 瑞昌市| 中阳县| 武宣县| 漳平市| 怀仁县| 舒城县| 靖远县| 黄山市| 井研县|