semaphore兩個重要的方法就是
semaphore.acquire() 請求乙個訊號量,這時候的訊號量個數-1(一旦沒有可使用的訊號量,也即訊號量個數變為負數時,再次請求的時候就會阻塞,直到其他執行緒釋放了訊號量)
semaphore.release() 釋放乙個訊號量,此時訊號量個數+1
示例中例項化了具有5個訊號量的semaphore,保證只有5個執行緒在執行test方法
public
class
semaphoretest
}).start();}}
private
void
test()
catch (interruptedexception e)
system.out.println(thread.currentthread().getname() +
" 進來了");
try
catch (interruptedexception e)
system.out.println(thread.currentthread().getname() +
" 出去了");
msemaphore.release();}}
04-18
17: 05:
46.350
14192-
1228 進來了
04-18
17: 05:
46.351
14192-
1231 進來了
04-18
17: 05:
46.354
14192-
1233 進來了
04-18
17: 05:
46.354
14192-
1232 進來了
04-18
17: 05:
46.355
14192-
1234 進來了
04-18
17: 05:
47.351
14192-
1228 出去了
04-18
17: 05:
47.351
14192-
1236 進來了
04-18
17: 05:
47.352
14192-
1231 出去了
04-18
17: 05:
47.352
14192-
1235 進來了
04-18
17: 05:
47.354
14192-
1233 出去了
04-18
17: 05:
47.354
14192-
1237 進來了
04-18
17: 05:
47.354
14192-
1232 出去了
04-18
17: 05:
47.354
14192-
1229 進來了
04-18
17: 05:
47.356
14192-
1234 出去了
04-18
17: 05:
47.356
14192-
1230 進來了
04-18
17: 05:
48.351
14192-
1236 出去了
vsftpd配置只允許某個IP段進行訪問
3.etc hosts.allow 和 etc hosts.deny的關係 先從hosts.allow檔案中查詢允許的ip,如果找到就允許訪問,就不找hosts.deny檔案了,如果沒找到,就在hosts.deny中查詢,如果找到,就拒絕,沒找到,還是允許訪問。hosts.deny檔案格式 vsft...
Redis控制某個使用者每秒併發數量
前提 開始我們是在nginx做了併發數控制,但是後來由於業務需要 併發數越高,付費越高 我們想在自己後台實時控制使用者的併發數 nginx只做了最最大上限控制,我們後台的併發數都會控制在合理範圍內 就想到用redis在 層控制單個使用者數每秒併發量 設計 由於redis命令都是原值操作,則以user...
PostgreSQL 允許遠端訪問設定方法
安 裝postgresql資料庫之後,預設是只接受本地訪問連線。如果想在其他主機上訪問postgresql資料庫伺服器,就需要進行相應的配置。配置遠 程連線postgresql資料庫的步驟很簡單,只需要修改data目錄下的pg hba.conf和postgresql.conf。pg hba.conf...