JAVA可阻塞队列-ArrayBlockingQueue子类BlockingQueue的应用,使用它来实现子线程打印10次,主线程打印100次,如此反复
2016-01-14 10:18
731 查看
/** * 使用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(); } } } }
相关文章推荐
- easyui datebox只显示年月
- 《iOS Human Interface Guidelines》——iCloud
- UGUI中的InputField下的placeholder的作用?
- GUID
- JAVA可阻塞队列-ArrayBlockingQueue
- UITextField使用时文字向下偏移问题
- Contacts(CNSaveRequest)
- Mobileye's quest to put Deep Learning inside every new car
- clouder manager uuid文件导致无法添加主机问题
- ceph存储 UIO 子系统结构介绍
- UIView的基本属性和方法
- UIsearchController
- iOS 视图控制器(UIViewContr…
- iOS开发中UIImageView控件的常用操作整理
- Native Libraries Guide
- iOS中的UINavigationController导航栏视图控制器的简单应用
- Android UI布局之用户界面概述
- UITextView的使用详解
- 破解 ue 30天试用方法
- easyui全选、取消所有页