题目:一个线程每秒输出一个随机数到一个共享队列,3个线程每2秒从队列头部获取这个随机数,并打印出来
能否打出程序,我想学习一下思路
题目:一个线程每秒输出一个随机数到一个共享队列,3个线程每2秒从队列头部获取这个随机数,并打印出来
能否打出程序,我想学习一下思路
public static void main(String[] args) {
LinkedBlockingQueue queue = new LinkedBlockingQueue();
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Random random = new Random();
int num = random.nextInt(1000);
queue.add(num);
System.out.println(Thread.currentThread().getName()+"插入队列的随机数为"+num);
}
},0,1000);
for (int i = 0; i < 3; i++) {
Timer timer2 = new Timer();
timer2.schedule(new TimerTask() {
@SneakyThrows
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+"取出的队首数为"+ queue.take());
}
},0,2000);
}
}
点赞关注+采纳