首先我需要清除一些基本的東西,假設我有一個同步塊或同步方法,一個線程已經進入同步部分,5個新線程嘗試訪問同步部分,它們會停止運行直到第一個線程離開同步部分?如果他們這樣做,他們會在優先隊列中等待嗎?線程同步和單例問題
第二個問題是關於顯示器,假設我有以下代碼:
synchronized(someObject){ //do some stuff someObject.wait(); }
它是正確的假設,如果一個線程運行這段代碼,而另一個線程正在等待監視器上,然後第一個線程調用wait,第二個線程將進入代碼塊(IE等待發布someObject
的顯示器)?
最後一個問題是關於一個單例實現,爲了使它的線程安全,是否足以同步單例類中的實例化行,以確保它永遠不會被多次調用?如果是這樣,這是最佳做法嗎?
我認爲你應該將這些問題分解爲許多問題並詳細闡述。 – manouti