2017-02-16 10 views
0

以下のコードでスレッドt1とt2は同じオブジェクトに属していますか?そうであれば?どのオブジェクト。彼らはモニターやmutexのロックを獲得するために競争しますか?Javaのメインクラスの2つのインラインスレッドが同じオブジェクトに属していますか?

彼らは別のオブジェクトに属している場合。どうやって?モニタの観点からの説明は有用であろう。

package com.java.thread.practice; 

public class InlineObject_SameThread { 

    public static void main(String[] args) { 

     Thread t1 = new Thread(new Runnable(){ 

      @Override 
      public void run() { 

      // Will this compete with thread t2 to acquire monitor ?? 

      } 

     }); 

     Thread t2 = new Thread(new Runnable(){ 

      @Override 
      public void run() { 

       // Will this compete with thread t1 to acquire monitor ?? 

      } 

     }); 

     // Starting the first thread. 

     t1.start(); 

     // Starting the second thread. 

     t2.start(); 

     /* There can be further logic, currently I will placing those as 
     * we progress. 
     */ 
    } 

    /* 
     Code ends. 
    */ 

} 
+2

スレッド(または一般にオブジェクト)は、他のオブジェクトに属していません。他のオブジェクトは、これらのスレッドへの*参照*を持っているかもしれませんが、私の電話番号が私の電話を所有することを知っている誰よりも、所有権ではありません。 –

+1

投稿から_ "私はディスカッションを探しています" _を削除しました。 StackOverflowは、ディスカッションのためのものではありません。また、私が作った他のフォーマットの変更にも注意を払い、投稿とコードのフォーマット方法を学んでください。 –

+0

ありがとう@AndyTurner。 はそれは、両方のスレッドが同じオブジェクト「は、この(InlineObject_SameThread)」を参照意味するのでしょうか? –

答えて

0

スレッドT1およびT2は、同じオブジェクトに属しているのですか?

スレッドオブジェクトに属していない、またオブジェクトが他のオブジェクトに属します。オブジェクトは、スレッドを表すThreadオブジェクトを含む他のオブジェクトへの参照を、保持することができます。小柄なので、参照はオブジェクトに属しません。どちらも単なる値です。オブジェクトは、値1を所有できる以上の参照を所有することはできません。オブジェクトは、参照が格納されるの変数を所有している可能性があります。

彼らは、モニタやミューテックスのロックを獲得するために競争するのでしょうか?

それにもかかわらず、スレッドは理由なくオブジェクトのモニタを取得しません。あなたの例では、どのスレッドもオブジェクトのモニタを取得しようとする何もしません。確かに、そのようなスレッドは、同じモニターに対して競合させるような作業をすることができますが、それを呼び出す際には「インライン」とはほとんど関係ありません。

彼らは別のオブジェクトに属している場合。どうやって?モニタの観点からの説明は有用であろう。

Threadオブジェクトは、その存在が、スレッドが作成されたコンテキストの実質的に独立しているスレッドを表します。ただし、main()にのみいずれかの参照があります。モニタは全く考慮されていないため、モニタの説明はありません。

さらに、main()staticであるため、main()で実行されているコードはオブジェクトに関連付けられていません。自分自身以外のスレッドに属するオブジェクトはありません。 2つのRunnable()インスタンスが存在しますが、Threadがそれに属していると主張する正当な理由はありません。何かあれば、あなたはそれが他の方法であると主張するかもしれません。

+0

ありがとうございます。情報は有用であり、疑念を解消する。 –

関連する問題