2017-06-30 11 views
0

論理的には、waitメソッドを呼び出すスレッドは、waitが呼び出されているオブジェクトの本来のロックを取得しているはずです。waitメソッドを呼び出すスレッドの固有ロックを取得する方法

ロックを獲得するために、少なくとも別の方法が存在し得ることを意味する、「オブジェクトの同期方法内側waitを起動する固有ロックを取得するための簡単な方法である」とは、Oracleチュートリアルhereに記載されています。

waitを呼び出すために、synchronizedメソッド内でwaitを呼び出す以外に、固有のロックを取得する他の方法がありますか? ...そして彼らは何ですか?

答えて

0

数(密接に関連する)他のその心にバネ:​​ブロック内

  • :sychronizedメソッド内部から呼び出された非同期方法において

    synchronized (this) { 
        wait(); 
    } 
    
  • 、 :

    synchronized void a() { 
        b(); 
    } 
    
    void b() { 
        wait(); 
    } 
    
  • 非同期sychronizedブロックの内側から呼び出されるメソッド、:

    synchronized (this) { 
        b(); 
    } 
    
    void b() { 
        wait(); 
    } 
    
+0

感謝。私は1つupvoteのために死んでいる! ...あなたは私に許諾するのに十分なほど寛大な気持ちでしょうか? –

+0

私はあなたの答えが好きです。それは簡単なアイデアが答えかもしれないことを確認します。 –

関連する問題