多线程面试题。。。。
- package mytest;
- /**
- *
- * 声明一个共享数组,起两个线程,两个线程分别隔一段时间(可以写一个随机数),
- * 给数组中添加数据,每一个线程为数组添加3个数据即可。
- *
- * 多线程间的通讯等待唤醒:指的是多个线程处理同一资源,但是操作资源的线程代码不同
- *
- * 这里两个线程的任务是一样的,都是往数组中添加元素,所以不用等待唤醒,用sleep...
- *
- */
- public class ResArray {
- private int[] arr = new int[6];
- // 共享资源....
- private int pro = 0;
- // 操作共享资源的代码...同步:同步的是操作共享资源的代码,不是整个线程任务都要同步
- public synchronized void setEle(int num) {
-
- if (pro >= arr.length) pro = 0;
- int xxx = arr[pro++] = num;
- System.out.println(Thread.currentThread().getName() + "-往数组中添加了-" + xxx);
- }
- }
复制代码
|
|