次のJavaプログラムを作成する必要があります。
- 従業員の名前を格納するArrayListを作成します。
- 2つの同期メソッドを作成して、従業員名をArrayListに追加し、従業員名を出力します。
- 両方のスレッドが従業員の追加を完了したら、従業員名を印刷します。
私は次のことをしましたが、動作していません。「pr.print(X)」の行で例外が発生しています。誰か助けてもらえますか?これは私の宿題ではありません!!! ただ学ぼうとしているだけです。
import java.util.*;
public class Ch5Ex2
{
public static void main(String[] args)
{
List<String> li = new ArrayList<String>();
Print pri = new Print();
pri.start();
Insert in = new Insert(li);
in.start();
}
}
class Insert extends Thread
{
Print pr = new Print();
List<String> x;
public Insert(List<String> x)
{
this.x = x;
}
public synchronized void run()
{
try
{
x.add("robin");
x.add("ravi");
x.add("raj");
pr.print(x);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
class Print extends Thread
{
List<String> y;
public void print(List<String> y)
{
this.y = y;
notify();
}
public synchronized void run()
{
try
{
wait();
for(int i=0;i<y.size();i++)
{
System.out.println(y.get(i));
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}