阻塞队列 java实现_JAVA实现阻塞队列
package 多线程并发;
import java.util.Stack;
/**
* Created by z84102272 on 2018/7/17.
*/
public class BlockQueueImpl {
private final static Object pushLock = new Object(); //push的锁
private final static Object popLock = new Object(); //pop的锁
private Stack stack; //存储数据
public BlockQueueImpl(){
stack = new Stack<>();
}
/**
* push锁
*/
private void pushLock(){
synchronized (pushLock){
try{
pushLock.wait();
}catch (Exception e){
e.printStackTrace();
}
}
}
/**
* 释放push锁
*/
private void pushUnlock(){
pushLock.notify();
}
private void popLock(){
try {
popLock.wait();
}catch (Exception e){
e.printStackTrace();
}
}
private void popUnlock(){
popLock.notify();
}
public synchronized void push(Object o){
int MAX_SIZE = 3;
if (stack.size() >= MAX_SIZE){
pushLock();
}
stack.push(o);
popUnlock();
}
public Object pop(){
if (stack.size()==0){
popLock();
}
Object o = stack.pop();
pushUnlock();
return o;
}
}
原文:https://www.cnblogs.com/zyfzyfzyf/p/9324778.html
阻塞队列 java实现_JAVA实现阻塞队列相关推荐
- 无锁队列java实现_java轻松实现无锁队列
深入解析java java虚拟机jvm编译器 348.5元 (需用券) 去购买 > 1.什么是无锁(Lock-Free)编程 当谈及 Lock-Free 编程时,我们常将其概念与 Mutex(互 ...
- java 数据结构_Java版-数据结构-队列(数组队列)
前言 看过笔者前两篇介绍的 Java版数据结构 数组和 栈的盆友,都给予了笔者一致的好评,在这里笔者感谢大家的认可!!! 由于本章介绍的数据结构是 队列,在队列的实现上会基于前面写的 动态数组来实现, ...
- java 队列已满_java – ThreadPoolExecutor当队列已满时阻塞?
在一些非常狭窄的情况下,您可以实现一个java.util.concurrent.RejectedExecutionHandler,它可以满足您的需要. RejectedExecutionHandler ...
- 循环队列的java结构_Java数据结构——循环队列
普通顺序队列存在的问题 在普通顺序队列中,入队的操作就是先将尾指针rear右移一个单位,然后将元素值赋值给rear单位.出队时,则是头指针front后移一个单位.像这样进行了一定数量的入队和出队操作后 ...
- 阻塞队列和非阻塞队列(JAVA)
文章目录 1.阻塞队列 1.1 代码举例 1.2 LinkedBlockingQueue 2.非阻塞队列 2.1 代码举例 2.2 ConcurrentLinkedQueue 1.阻塞队列 1.1 代 ...
- java 队列已满_JAVA中常见的阻塞队列详解
在之前的线程池的介绍中我们看到了很多阻塞队列,这篇文章我们主要来说说阻塞队列的事. 阻塞队列也就是 BlockingQueue ,这个类是一个接 口,同时继承了 Queue 接口,这两个接口都是在JD ...
- Java并发编程:阻塞队列
2019独角兽企业重金招聘Python工程师标准>>> 本文先讲述一下java.util.concurrent包下提供主要的几种阻塞队列,然后分析了阻塞队列和非阻塞队列的中的各个方法 ...
- java多线程 --ConcurrentLinkedQueue 非阻塞 线程安全队列
ConcurrentLinkedQueue是一个基于链接节点的无界线程安全队列,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部:当我们获取一个元素时,它会返回队列头 ...
- Java并发编程之阻塞队列
Java并发编程之阻塞队列 目录 阻塞队列概述 为什么用?有什么好处? BlockingQueue的核心方法 SynchronousQueue的用法 用在哪里 1. 阻塞队列概述 阻塞队列,顾名思义, ...
最新文章
- LeetCode: 929. Unique Email Addresses
- 【C语言探索之旅】 第一部分第六课:条件表达式
- java消息推送怎么实现_调用钉钉接口实现机器人推送消息
- Django从理论到实战(part49)--ModelForm
- [译] Airbnb 在 React Native 上下的赌注(一):概述
- android scheme打开天猫,淘宝
- DP项目计算机科学,动态规划DynamicProgrammingDP-天津大学计算机科学与技术学院.PPT...
- 软件_linux命令cp目录路径和通配符
- 【java笔记】random类生成随机数
- python3.7怎么用_Python 3.7.0 来了!
- 17.高性能MySQL --- MySQL 分支与变种
- java package 打包_java打包的两种方式整理
- PAT 甲级1069/乙级 1019 PAT Ranking 个人错误总结
- ASP.NET 安全认证(三)—— 用Form 表单认证实现单点登录(Single Sign On)
- constrain用法_constrain是什么意思_constrain的翻译_音标_读音_用法_例句_爱词霸在线词典...
- sqlmap工具使用手册
- 线程学习(13)-偏向锁
- 朋友圈集赞,简洁壁纸,玩游戏学git
- solr 通过DIH方式导入创建索引
- 2015年09月23日