Semaphore 主要用於限定每個執行週期只允許一定數目的線程執行操作,從而保證虛擬機不因爲無限制地使用線程資源導致系統崩潰。實際應用時,在方法內部的數據訪問會導致多線程單競爭,因此要注意數據隔離。參考Semaphore(二)
使用線程A進行測試
執行結果如下:
結論:
因爲初始化時,指定了permits=2,所以每週期執行時,只會同時有兩個線程運行,其它線程等待。
Semaphore 主要用於限定每個執行週期只允許一定數目的線程執行操作,從而保證虛擬機不因爲無限制地使用線程資源導致系統崩潰。實際應用時,在方法內部的數據訪問會導致多線程單競爭,因此要注意數據隔離。參考Semaphore(二)
使用線程A進行測試
執行結果如下:
結論:
因爲初始化時,指定了permits=2,所以每週期執行時,只會同時有兩個線程運行,其它線程等待。