package com.company;
//同步队列
import java.util.concurrent.SynchronousQueue;
import java.util.concurrent.TimeUnit;
//没有元素,必须等待取出来之后,才能往里面放元素
public class SynchronousQueueTest {
public static void main(String[] args) {
//同步队列
SynchronousQueue<String> synchronousQueue = new SynchronousQueue<>();
//放元素
new Thread(()->{
try{
System.out.println(Thread.currentThread().getName()+"放入1");
synchronousQueue.put("1");
System.out.println(Thread.currentThread().getName()+"放入2");
synchronousQueue.put("2");
System.out.println(Thread.currentThread().getName()+"放入3");
synchronousQueue.put("3");
}catch (Exception e){
e.printStackTrace();
}
},"T1").start();
//取元素
new Thread(()->{
try{
TimeUnit.SECONDS.sleep(3);
System.out.println(Thread.currentThread().getName()+"取到"+synchronousQueue.take());
TimeUnit.SECONDS.sleep(3);
System.out.println(Thread.currentThread().getName()+"取到"+synchronousQueue.take());
TimeUnit.SECONDS.sleep(3);
System.out.println(Thread.currentThread().getName()+"取到"+synchronousQueue.take());
}catch (Exception e){
e.printStackTrace();
}
},"T2").start();
}
}
运行结果:
详细信息请看狂神视频