我需要爲下創建一個Java程序:線程和同步
- 創建一個ArrayList來存儲僱員的名字。
- 創建兩個同步方法將員工姓名添加到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();
}
}
}
什麼異常? –
NullPointerException – Robin
爲什麼當我在做完所有事情之後只是要求一個小的查詢時,我的帖子就會得到負面投票? – Robin