关于Java中Queue和BlockingQueue的区别
来源:才华咖 本文已影响2.14W人
来源:才华咖 本文已影响2.14W人
队列是一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时,称为空队列。下面小编准备了关于Java中Queue和BlockingQueue的区别,提供给大家参考!
kingQueue:支持两个附加操作的 Queue,这两个操作是:检索元素时等待队列变为非空,以及存储元素时等待空间变得可用。
kingQueue 不接受 null 元素。
kingQueue 可以是限定容量的'。
kingQueue 实现是线程安全的。Queue不是线程安全的。因此可以将Blockingqueue用于用于生产者-使用者队列。
根据Api修改的一个例子,大家可以修改自己体验BlockingQueue的使用
package test;
import yBlockingQueue;
import kingQueue;
/**
* 生产者
*/
class Producer implements Runnable {
private final BlockingQueue queue;
Producer(BlockingQueue q) {
queue = q;
}
public void run() {
try {
for (int i = 0; i < 3; i++) {
(produce());
tln("生产后:"+());
}
} catch (InterruptedException ex) {
tStackTrace();
}
}
Character produce() {
char c = (char) (om() * 26 + 'A');
tln("生产前:" + c);
return c;
}
}
/**
* 消费者
*/
class Consumer implements Runnable {
private final BlockingQueue queue;
Consumer(BlockingQueue q) {
queue = q;
}
public void run() {
try {
while (true) {
consume(());
//p(100);
}
} catch (InterruptedException ex) {
tStackTrace();
}
}
void consume(Character c) {
tln("消费:" + c);
}
}
/**
* 一个生产者、两个消费者
*
*/
class Setup {
public static void main(String[] args) {
BlockingQueue q = new ArrayBlockingQueue(1);
Producer p = new Producer(q);
Consumer c1 = new Consumer(q);
Consumer c2 = new Consumer(q);
new Thread(p)t();
new Thread(c1)t();
new Thread(c2)t();
}
}
–EOF–
A Travel Guide of Guangzhou为题的英语作文
linux中pagbuffer和cache的区别
jQuery中的read和JavaScript中的onload函数的区别在哪
英语阅读:Covergirl unveils empowering brand update
最新的美文欣赏:Why American Culture is Unique
Chinas Liu to seek injury advice in US soon英语作文
Perseverance will make you successful英语作文
八年级下册Unit 9 have you ever been to museum? 说课稿
《You Cant Judge a William by Its Cover》英语美文欣赏
jQuery中delegate与on的用法与区别
英语满分作文:Reading-TheBestMeanstoAcquireknowledge
英语作文Never judge a book by its cover
Excel表格中出现"#VALUE!"错误信息要怎么解决
英语的美文:Why American Culture is Unique
雅思阅读模拟试题:Sun's fickle heart may leave us cold
简历和求职信的区别
UN Chief Urges Leaders to Deliver on Climate Change美文欣赏
Notice about the flea marke初中英语作文
英语作文:The Value of Reading Books
关于Java中Queue和BlockingQueue的区别
PHP中include和require的区别
《Module 4 Unit 2 Does Daming like bananas?》说课稿
善于和擅于的区别
The Use of Body Language in School英语文章阅读
Cultivate Your ReadingHabit培养阅读习惯方法
关于笛子和萧的区别
高中优秀英语作文An Unforgettable Experience
How to Survive an Earthquake为题目的作文
让jQuery Mobile不显示loading界面的方法
高二英语作文300字范文:The Disabled Should Have Equal Righ
JavaScript中null和undefined的异同
Java Callable和Future学习
java.util.ArrayDeque类使用方法介绍
英语《Module 6 Unit 1 You can play football well》的教案设计
The value of reading books英语作文
托福英语写作范文:Examinations exert a pernicious influence on educat
“Does Pressure Equal Motivation?”高中英语作文范文
关于SEFC Book I Unit 7 Cultural Relics的教学方案
Win10系统提示Officebackgroundtaskhandler.exe弹窗问题的解决方
英语阅读:Life is inevitable consequence of physics