package com.nowcoder; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.SpringApplicationConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQueue; /** * Created by Administrator on 2017/5/9. */ public class MyThread { class Producer implements Runnable{ private BlockingQueue<String> p; public Producer(BlockingQueue p){ this.p = p; } @Override public void run() { try { for (int i = 0; i < 10; i++){ Thread.sleep(1000); p.put(String.valueOf(i)); } }catch (Exception e){ e.printStackTrace(); } } } class Consumer implements Runnable{ private BlockingQueue<String> c; public Consumer(BlockingQueue c){ this.c = c; } @Override public void run() { while (true){ try { System.out.println(Thread.currentThread().getName() +":" + c.take()); } catch (InterruptedException e) { e.printStackTrace(); } } } } public void testBlockingQueue(){ BlockingQueue<String> blockingQueue = new ArrayBlockingQueue<String>(10); new Thread(new Producer(blockingQueue)).start(); new Thread(new Consumer(blockingQueue), "consumer1").start(); new Thread(new Consumer(blockingQueue), "consumer2").start(); } public static void main(String[] args){ new MyThread().testBlockingQueue(); } }
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步