JAVA可阻塞队列-ArrayBlockingQueue子类BlockingQueue的应用,使用它来实现子线程打印10次,主线程打印100次,如此反复
/** * 使用BlockingQueue实现主子线程互相打印 * @author duwenlei * */ public class BlockingQueueTest { public static void main(String[] args) { final Business business = new Business(); new Thread(new Runnable() { @Override public void run() { while(true){ business.sub(); } } }).start(); while(true){ business.main(); } } static class Business{ private BlockingQueue<Integer> queue1 = new ArrayBlockingQueue<Integer>(1); private BlockingQueue<Integer> queue2 = new ArrayBlockingQueue<Integer>(1); { try { queue2.put(1); } catch (InterruptedException e) { e.printStackTrace(); } } public void sub(){ try { queue1.put(1); } catch (InterruptedException e) { e.printStackTrace(); } for (int i = 1; i < 11; i++) { System.out.println("sub print "+ i); } try { queue2.take(); } catch (InterruptedException e) { e.printStackTrace(); } } public void main(){ try { queue2.put(1); } catch (InterruptedException e) { e.printStackTrace(); } for (int i = 1; i < 101; i++) { System.out.println("main print "+i); } try { queue1.take(); } catch (InterruptedException e) { e.printStackTrace(); } } } }
如果有使用请标明来源:http://www.cnblogs.com/duwenlei/