使用semaphore寫乙個顯示鎖

2022-02-19 06:19:05 字數 711 閱讀 6206

/*

* * 這裡只是將semaphore包裝了一下,注意當semaphore的構造引數是1時,本身就是乙個顯示鎖 */

public

class

semaphorelock

public

void

unlock()

public

static

void

main(string args)

catch

(interruptedexception e)

finally

system.

out.println(thread.currentthread().getname() + "

release the lock ");

}).start();}}

}

這個例子就是把semaphore當成了普通的顯示鎖

public

class

semaphorelock

}}class

output

catch

(exception e)

finally

}}

note:這裡的semaphore只是當成了"lock",與真實的lock的區別是,真實的lock必須由lock的持有者進行釋放,而semaphore可有由其他的執行緒來釋放

實現乙個Semaphore

其實這是我boss的想法,我一開始聽他這麼說也覺得比較差異,ms已經寫好了何必再自己寫乙個.答案有兩個 1ms寫的東西未必就是最好的,如完成埠,heap等.2semaphore是多執行緒程式設計中的核心元素所以有必要提速.我們都知道在多執行緒中ms提供的多個現成阻塞核心物件中critical mon...

python寫乙個服務 Python寫乙個服務

coding utf 8 import json from urllib.parse import parse qs from wsgiref.server import make server 定義函式,引數是函式的兩個引數,都是python本身定義的,預設就行了。定義檔案請求的型別和當前請求成功...

使用socketserver寫乙個套接字程式

使用socketserver寫乙個套接字程式來實現多執行緒,即伺服器端可與多個客戶端進行通話,首先伺服器端程式為 usr bin python coding utf 8 import socketserver class mytcphandle socketserver.baserequesthan...