Java中的信號量Semaphore詳細解讀
更新時間:2023年11月20日 11:05:06 作者:tanxinji
這篇文章主要介紹了Java中的信號量Semaphore詳細解讀,Java信號量機制可以用來保證線程互斥,創(chuàng)建Semaphore對象傳入一個整形參數(shù),類似于公共資源,需要的朋友可以參考下
Java中的信號量Semaphore
信號量機制可以用來保證線程互斥
創(chuàng)建Semaphore對象: 傳入一個整形參數(shù),類似于公共資源
常用方法:
- acquire();獲取一個公共資源,公共資源-1,如果公共資源小于等于0阻塞等待
- acquire(int permits);獲取permits個公共資源,公共資源-permits,如果公共資源<0阻塞等待
- release();釋放一個公共資源,公共資源+1
- release(int permits);釋放permits個公共資源,公共資源+permits
- boolean tryAcquire( );嘗試獲取一個公共資源,可以獲取返回true,不可以返回false
- boolean tryAcquire( int permits );嘗試獲取permits個公共資源,可以獲取返回true,不可以返回false
Semaphore s = new Semaphore(1);
s.acquire();
s.release();
示例:
import java.util.concurrent.Semaphore;
public class SemaphoreTest {
public static void main(String[] args) throws InterruptedException {
Semaphore t = new Semaphore(1);
new Thread( ()->{
try {
t.acquire( ); // 獲取
Thread.sleep(2000);
System.out.println(Thread.currentThread().getName()+" 執(zhí)行!");
} catch (InterruptedException e) {
e.printStackTrace();
}finally {
t.release(); //釋放
}
} ,"thread1" ).start();
new Thread( ()->{
try {
t.acquire();
Thread.sleep(2000);
System.out.println(Thread.currentThread().getName()+" 執(zhí)行!");
} catch (Exception e) {
e.printStackTrace();
}finally {
t.release(1);
}
} ,"thread2" ).start();
}
}
到此這篇關于Java中的信號量Semaphore詳細解讀的文章就介紹到這了,更多相關信號量Semaphore內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis動態(tài)拼接實現(xiàn)有條件的插入
這篇文章主要介紹了mybatis動態(tài)拼接實現(xiàn)有條件的插入,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
springboot @Controller和@RestController的區(qū)別及應用詳解
這篇文章主要介紹了springboot @Controller和@RestController的區(qū)別及應用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-11-11
SpringBoot接收數(shù)組參數(shù)和集合參數(shù)方式
這篇文章主要介紹了SpringBoot接收數(shù)組參數(shù)和集合參數(shù)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03
ConditionalOnProperty配置swagger不生效問題及解決
這篇文章主要介紹了ConditionalOnProperty配置swagger不生效問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-06-06
java開發(fā)之SQL語句中DATE_FORMAT函數(shù)舉例詳解
要將日期值格式化為特定格式,請使用DATE_FORMAT函數(shù),下面這篇文章主要給大家介紹了關于java開發(fā)之SQL語句中DATE_FORMAT函數(shù)的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-05-05

