• 締切済み

JAVAのマルチスレッドの共有変数についての質問

JAVAのマルチスレッドの共有変数についての質問です。 スレッドを2つ作ってその2つのスレッド共有の配列を作りたいのですがどうすれば良いのでしょうか。 コードは以下のとおりです。 public class testes extends Thread { int n; int a[]={10,10}; public testes(int n){ this.n = n; } public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ testes t1 = new testes(0); testes t2 = new testes(1); t1.start(); t2.start(); } public void run(){ a[n] =n; System.out.println(a[0]+","+a[1]); } } 実行すると(0,10)もしくは(10,1)が表示されます。 このとき(0,1)と表示するにはどうすれば良いのでしょうか。

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

共有変数にしたいだけならaがインスタンスメンバになってるのをクラスメンバにすればいいだけですけど、それをしたからといって "(0,1)" と出力されるとは限りません。 ・aをクラスメンバにする ・a[0] = 0, a[1] = 1 の状態になるまで待った上で出力する

関連するQ&A