这个代码的目的是:开启两个线程,隔一段时间就对数组添加数据
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class ArrayDemo {
//共享的一个数组
public static ArrayList<Integer> arr=new ArrayList<Integer>();
public static void main(String[] arge) throws InterruptedException{
//创建一个runnable匿名对象
Runnable thre=new Runnable() {
public void run() {
//不设置锁
// synchronized(this){
for(int x=0;x<3;x++){
//获取随机的数存入集合内
Random r=new Random();
int y=r.nextInt(10);
System.out.println(y);
arr.add(y);
System.out.println(Thread.currentThread().getName());
try {
//睡3秒
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
Thread t=new Thread(thre);
// t.setName("majia");
t.start();
Thread t1=new Thread(thre);
t1.start();
//主线程等待着两个线程执行完毕后,在执行
t.join();
t1.join();
System.out.println(arr);
}
}
问题来了,为什么,经常会出现,数组0角标位置为null,没有添加数据,求大神解答
|