package com.lyon.juc; import java.util.concurrent.BlockingQueue; import java.util.concurrent.SynchronousQueue; import java.util.concurrent.TimeUnit; //同步队列 public class BlockingQueueDemo { public static void main(String[] args) { BlockingQueue<String> strings = new SynchronousQueue<>(); new Thread(()->{ try{ System.out.println(Thread.currentThread().getName()+" put 1"); strings.put("1"); System.out.println(Thread.currentThread().getName()+" put 2"); strings.put("2"); System.out.println(Thread.currentThread().getName()+" put 3"); strings.put("3"); } catch (InterruptedException e) { e.printStackTrace(); } },"T1").start(); new Thread(()->{ try{ TimeUnit.SECONDS.sleep(3); System.out.println(Thread.currentThread().getName()+" =>"+strings.take()); TimeUnit.SECONDS.sleep(3); System.out.println(Thread.currentThread().getName()+" =>"+strings.take()); TimeUnit.SECONDS.sleep(3); System.out.println(Thread.currentThread().getName()+" =>"+strings.take()); } catch (InterruptedException e) { e.printStackTrace(); } },"T2").start(); } }
多线程之同步队列
最新推荐文章于 2022-11-21 14:50:36 发布