黑马程序员技术交流社区
标题:
----------多线程向共享数组中添加元素----------
[打印本页]
作者:
syusouki
时间:
2015-10-12 19:03
标题:
----------多线程向共享数组中添加元素----------
import java.util.Random;
/***
* 开启两个线程每隔一段时间分别向一个共享数组中添加元素,每个线程添加3个即可。
*
*/
public class ShareDemo {
// 共享数组
private String[] shareArray = new String[6];
// 数组当前下标
private int currentIndex = 0;
/*********** 线程实现 ****************/
// 往数组中存数据的线程
public class MyThread extends Thread {
MyThread(String name) {
super(name);
}
@Override
public void run() {
for (int i = 0; i < 3; i++) {
synchronized (shareArray.getClass()) {
// 往数组中添加数据
shareArray[currentIndex++] = Thread.currentThread()
.getName() + "存入:" + new Random().nextInt(10);
}
try {
// 存一个休眠一秒
this.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
ShareDemo demo = new ShareDemo();
// 实例化两个线程添加元素
MyThread t1 = demo.new MyThread("线程1");
MyThread t2 = demo.new MyThread("线程2");
// 启动线程
t1.start();
t2.start();
try {
// 加入线程(保证子线程能够充分执行)
t1.join();
t2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 遍历集合
for (int i = 0; i < demo.shareArray.length; i++) {
System.out.println(demo.shareArray[i]);
}
}
}
作者:
如期而至
时间:
2015-10-12 21:18
加油↖(^ω^)↗
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2