java 多執行緒 synchronized鎖重入

2021-08-22 07:27:16 字數 1013 閱讀 5131

public class service 

synchronized public void service2()

synchronized public void service3()

}

新建乙個服務類:在這裡,沒乙個方法都是加上了鎖的,」可重入鎖」的概念是,自己可以再次獲取自己的內部鎖。比如有1條執行緒獲得了 某個物件的鎖,此時這個物件鎖還沒有釋放,當其再次想要獲取這個物件的鎖的時候還是可以獲取的,如果不可以鎖重入的話,就會造成死鎖。

可重入鎖是支援在父子類種的繼承的。

在多執行緒裡面呼叫:

public class mythread extends thread 

}

public static void main(string args)
service1

service2

service3

由此可以看出,就算是第乙個方法沒有釋放掉鎖,第二個方法依然可以獲取鎖,並且執行。

「鎖重入」支援繼承

public class main  catch (interruptedexception e) 

}}

public class sub extends main 

} catch (interruptedexception e)

}}

sub print i=9

main print i=8

sub print i=7

main print i=6

sub print i=5

main print i=4

sub print i=3

main print i=2

sub print i=1

main print i=0

在繼承種,鎖依然可重入。

java多執行緒

在網上看到很有意思的問題,摘下來好好看下 在面試的時候被問了乙個多執行緒的問題 回來仔細思考了一下,多執行緒是否真的能提高了效率?我對多執行緒的理解就是 比如挖乙個隧道,有2種開工方法 1 只在山的一頭挖,直至挖到山的另一頭,從而打通隧道,這可以看成是單執行緒 2 在山的兩頭挖,同時開工,最後在山的...

Java 多執行緒

1。thread類和runnable介面 2。主線程 用thread的static thread currentthread 方法獲得 3。通過實現runnable介面建立執行緒 實現runnable介面的run方法。新執行緒在run 方法返回時結束。注意用這種方法建立程序時,在實現runnable...

JAVA 多執行緒

為hashmap的不正確使用所導致。hashmap在多執行緒環境下使用不安全。使用靜態hashmap作為聯絡人資料快取,key為手機號碼.private static maplxrdata new hashmap 多執行緒環境下不同步hashmap可能導致如下問題 1 多執行緒put操作後可能導致g...