62,623
社区成员
发帖
与我相关
我的任务
分享
public class MyList {
private List list=new ArrayList();
public void add(){
list.add("nice" );
}
public int size(){
return list.size();
}
}
public class ThreadA extends Thread {
private MyList list;
public ThreadA(MyList list) {
super();
this.list = list;
}
@Override
public void run() {
try{
for(int i=0;i<10;i++){
list.add();
System.out.println("add "+(i+1));
Thread.sleep(1000);
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
public class ThreadB extends Thread {
private MyList list;
public ThreadB(MyList list) {
super();
this.list = list;
}
@Override
public void run() {
try{
while(true){
/**
* 按书本上源码,不能正确的运行
* 但while语句中加一句输出能正确输出或者说正确抛出异常,书本上源码是没有的
* 求问,为什么
* jdk1.8
* myeclipse 2016
*/
if(list.size()==5){
System.out.println("5,threadB out....");
throw new InterruptedException();
}
}
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
public class Run {
public static void main(String[] args) {
MyList list=new MyList();
ThreadA a=new ThreadA(list);
a.setName("A");
a.start();
ThreadB b=new ThreadB(list);
b.setName("B");
b.start();
}
}