深入簡出 synchronized和lock區別

2021-10-06 18:31:05 字數 955 閱讀 7754

synchronized是關鍵字

有以下三種使用方法:

靜態方法加上關鍵字                                                 類

例項方法(也就是普通方法)加上關鍵字                方法

方法中使用同步**塊                                             **塊

有兩種加鎖方式:

鎖住類鎖住物件例項

1 實現的是非公平鎖,鎖執行後會自動釋放。

2 使用synchronized,其它執行緒會一直等待下去,直至執行完。

lock是乙個介面 他是乙個包含公平鎖和非公平鎖,包含多個介面,使用lock必須手動釋放鎖。

lock可以讓等待鎖的執行緒響應中斷,而synchronized不會,執行緒會一直等待下去。

通過lock可以知道執行緒有沒有拿到鎖,而synchronized不能。

lock能提高多個執行緒讀操作的效率。

嘗試獲取鎖 成功返回true 失敗返回false  這樣就可以檢驗是否已經鎖被釋放了

這個是trylock的過載方法,可以設定乙個時間值 當到達這個時間 才會返回true和false

也就是在引數範圍內,則不會立即返回值,會等待一段時間,這個時間就是傳入的具體引數值,在這個時間內獲取鎖成功,則依舊返回true;

當過了引數範圍後,還是獲取鎖失敗,則立即返回false。

還有就是 

void unlock();  需要執行完手動來釋放鎖。

深入淺出sizeof

int佔 位元組,short佔 位元組 1.0 回答下列問題 答案在文章末尾 1.sizeof char 2.sizeof a 3.sizeof a 4.strlen a 如果你答對了全部四道題,那麼你可以不用細看下面關於sizeof的論述。如果你答錯了部分題目,那麼就跟著我來一起 關於sizeof...

深入淺出ShellExecute

ipconfig c log.txt應如何處理?二樓的朋友,開啟拔號網路這樣 shellexecute null,open c windows rundll32.exe shell32.dll,control rundll c windows system telephon.cpl null,sw ...

深入淺出ShellExecute

深入淺出shellexecute譯者 徐景周 原作 nishant s q 如何開啟乙個應用程式?shellexecute this m hwnd,open calc.exe sw show 或shellexecute this m hwnd,open notepad.exe c mylog.log...