黑马程序员-阻塞队列
来源:互联网 发布:发货单打印软件 编辑:程序博客网 时间:2024/05/02 20:12
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ----------------------
Java.util.concurrent包
LinkedBlockingQueue 容量没有上边界,但是,可以选择指定最大容量。
LinkedBlockingDeque 是一个双端的版本
ArrayBlockingQueue 在构造时需要指定容量,并且有一个可选的参数来指定是否需要公平性。
利用阻塞队列实现线程的同步通信:
(还是那到题目,主线程循环10次,子线程循环100次,如此往复)
原理:利用两个阻塞队列,一个空,一个满,容量都为1
import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;public class ArrayBlockingDemo {/** * @param args * @throws Exception */public static void main(String[] args) throws Exception {// TODO Auto-generated method stubfinal BlockingQueue bq1 = new ArrayBlockingQueue(1);final BlockingQueue bq2 = new ArrayBlockingQueue(1);bq1.put(1);new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubwhile (true) {try {bq1.put(1);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}for (int i = 0; i < 10; i++) {System.out.println("sub is running" + i);}try {bq2.take();} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}).start();while (true) {bq2.put(1);for (int j = 0; j < 20; j++) {System.out.println("main is running" + j);}bq1.take();}}}
小结:注意,匿名构造函数运行时机是在所有构造方法之前,(创建几个对象,匿名构造方法就会运行几次)
---------------------- <a href="http://www.itheima.com"target="blank">ASP.Net+Unity开发</a>、<a href="http://www.itheima.com"target="blank">.Net培训</a>、期待与您交流! ---------------------
0 0
- 黑马程序员-阻塞队列
- 黑马程序员-阻塞队列
- 黑马程序员--BlockingQueue(可阻塞的队列)
- 《黑马程序员》 使用阻塞队列实现同步通知
- 黑马程序员---用可阻塞队列实现两…
- 黑马程序员---用阻塞队列实现三个…
- 黑马程序员-java-condition-实现线程通信和可阻塞队列
- 黑马程序员——Java多线程—线程同步—阻塞队列:BlockingQueue
- 【黑马程序员】Queue队列
- 黑马程序员_线程阻塞问题
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 阻塞队列
- 自己动手写操作系统 第八章 :进程间通信 IPC
- java设计模式之装饰者模式Decorator
- [黑马程序员]TreeMap练习
- Android开发把项目打包成apk
- 黑马程序员--集合框架体系
- 黑马程序员-阻塞队列
- struts2 json 输出日期格式不正确
- Android Gallery3D源码分析
- 字典树Trie
- Android安装包制作签名Android安装包制作签名
- linux下memcached安装和配置
- Eclipse中使用代码折叠插件
- C/C++ 结构体字节对齐详解
- 最短路径 之 Floyd 算法