多執行緒06 鎖相關

2021-10-08 09:06:38 字數 1035 閱讀 7411

1、死鎖

多個執行緒各自占有一些共享資源,並且互相等待其它執行緒占有的資源才能執行,而導致兩個或者多個執行緒都在等待對方釋放資源,互相僵持的情形

2、模擬死鎖場景

public

class

testdeadlock

}class

lipstick

class

mirror

class

makeup

implements

runnable

@override

public

void

run(

)catch

(interruptedexception e)

}// 模擬兩個執行緒競爭資源的場景

private

void

makeup()

throws interruptedexception }}

else}}

}}

3、死鎖的四個必要條件

上訴列出四個必要條件,我們只要破壞其中乙個就能避免死鎖的發生。

4、lock(鎖)

public

class

testlock

}class

mylock

implements

runnable

catch

(interruptedexception e)

system.out.

println

(thread.

currentthread()

.getname()

+"-->"

+ ticket--);

}else

}finally}}

}

5、synchronized 與 lock 的對比

java的執行緒 鎖相關

volatitle 這樣的一行 volatitle instance new singleton instance是volatile變數彙編後 是這樣子的 0x01a3de1d movb 0 0,0 1104800 esi 0x01a3de24 lock addl 0 0,esp 當中有個lock指...

多執行緒學習06 執行緒安全

執行緒安全 互斥鎖 執行緒同步 多執行緒的安全隱患 1,資源共享 1塊資源可能會被多個執行緒共享,也就是多個執行緒可能會訪問同乙個資源 比如多個執行緒訪問同乙個物件 同乙個變數 同乙個檔案。2,當多個執行緒訪問同一塊資源時,很容易引發資料錯亂和資料安全問題 安全隱患解決 互斥鎖 互斥鎖使用格式 sy...

多執行緒相關

多執行緒示例 public class threadtest start new thread new runnable start new thread new runnable start class print public void print2 public void print3 上面的...