50,710
社区成员
发帖
与我相关
我的任务
分享
public class Demo {
public static void main(String[] args) {
final Res resource = new Res();
new Thread(new Runnable() {
private boolean isRunning = true;
@Override
public void run() {
// while (isRunning) {
// resource.get();
// }
for (int i = 0; i < 1000; i++) {
System.out.println("扫描到当前元素:" + resource.get());
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
for (int i = 0; i < 1000; i++) {
resource.put(i);
System.out.println("成功添加 :" + i);
}
}
}).start();
}
}
class Res {
private List<Integer> array = new ArrayList<Integer>();
private ListIterator<Integer> iterator = array.listIterator();
Res() {
iterator.add(50);
iterator.add(60);
iterator.add(70);
}
public synchronized void put(Integer data) {
iterator.add(data);
}
public synchronized Integer get() {
if (iterator.hasNext()) {
Integer data = iterator.next();
return data;
}
else {// 迭代到结尾或者集合已空
// 集合空
if (array.isEmpty())
return null;
// 集合非空
iterator = array.listIterator();
Integer data = iterator.next();
return data;
}
}
看看这代码能不能满足你的需求。。。。