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...