Scenerio:
- 15個のインデックスの整数配列があります。(それぞれに何らかの値が入力されています)
- 2つのスレッドでインデックスの値に2(+2)を追加したいと思います。それぞれが、どのインデックスがすでに追加されているかを認識しています。
- 次に、スレッドに参加して終了します。
これまでのところ(私が作成したところまで)、Runnableインターフェイスを実装し、runnable内で計算される配列を提供しているだけです。私はここからこのハンドシェイクを行う方法に固執しています。助けてくれてありがとう
public class FooRunnable implements Runnable
{
private int[] myArray = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};
@Override
public void run()
{
for(int i=0; i<myArray.length; i++)
{
myArray[i] = myArray[i] +2;
System.out.println("Thread "+Thread.currentThread().getName()+" Finished index: "+i);
atomicCount.incrementAndGet();
}
}
public static void main(String[] args)
{
FooRunnable r = new FooRunnable();
Thread t1 = new Thread(r);
Thread t2 = new Thread(r);
t1.setName("Thread One");
t2.setName("Thread Two");
t1.start();
t2.start();
}
}
結果(目標):
プログラムが終了したとき。配列には、配列の各要素が2つの異なるスレッドを介して2ずつインクリメントされる必要があります。