国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > java中SynchronousQueue的原理

java中SynchronousQueue的原理

java

头像

小妮浅浅

2021-02-08 19:26:043216浏览 · 0收藏 · 0评论

本教程操作环境:windows7系统、java10版,DELL G3电脑。

1.主要属性

// CPU的数量
static final int NCPUS = Runtime.getRuntime().availableProcessors();
// 有超时的情况自旋多少次,当CPU数量小于2的时候不自旋
static final int maxTimedSpins = (NCPUS < 2) ? 0 : 32;
// 没有超时的情况自旋多少次
static final int maxUntimedSpins = maxTimedSpins * 16;
// 针对有超时的情况,自旋了多少次后,如果剩余时间大于1000纳秒就使用带时间的LockSupport.parkNanos()这个方法
static final long spinForTimeoutThreshold = 1000L;
// 传输器,即两个线程交换元素使用的东西
private transient volatile Transferer<E> transferer;

通过属性我们可以Get到两个点:

1)这个阻塞队列里面是会自旋的;

2)它使用了一个叫做transferer的东西来交换元素;

2.构造方法

public SynchronousQueue() {
this(false);
}
public SynchronousQueue(boolean fair) {
transferer = fair ? new TransferQueue<E>() : new TransferStack<E>();
}

1)默认使用非公平模式,也就是栈结构;

2)公平模式使用队列,非公平模式使用栈;

3.TransferQueue

TransferQueue是SynchronousQueue的公平策略实现类,它在内部维护了一个线程队列。

public SynchronousQueue(boolean fair) {
    // 如果是公平模式就使用队列,如果是非公平模式就使用栈
    transferer = fair ? new TransferQueue<E>() : new TransferStack<E>();
}

以上就是java中SynchronousQueue的原理,相信大家现在已经能够理解SynchronousQueue的队列长度为0和公平模式的应用的情况了,而TransferQueue是实现公平模式的要点。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

密爱| 三男一女吃奶添下面| 淑芬啊…啊别停灬用力啊视频| 山野风流小神医小说免费阅读| 爸爸的大DJ小说| 《课后2对1特别授课》女主角是..| 他扒开内裤把舌头伸进去| 欧美寡妇性猛交XXX| 宝~才三根手指就不行啦| 青梅竹马是消防员第一部| 狗配人的大片视频大全| 《女朋友的妹妹3》| A片交性视频爽爽爽免费观看| 姑父有力挺送小芳的背景故事 | 女同学上课用嘴帮我口出来| 美国禁忌| 亚洲最大的综合性区域国际贸易 | 《玉浦困之初入桃花之风雨山应》…| 久久久久久精品免费免费导航| 桃色视频| 《温柔善良的儿媳妇》的背景故事| 洞洞饿了1-36集全免费| 爷爷的鸡又黑又长下一句怎么接| 第79章厨房的欢愉方晴| 韩漫网址| 梁祝艳谭5免费观看| 9.1国产NBA免费看电影| 欧美片《肉欲进入》| 阴部按摩出水太尴尬怎么办| BOBO浏览器(海外版)| 偷偷在线观看免费的电视剧最新 | 姑妄言在线阅读| 丫头把腿开大让我添添| 欧美大片PPT免费PPT| 他扒开我小流添我三男一女视频| 男生把小困困放到女生困里视频| 成全在线观看免费全集高清 | 日本簧片在线观看| 暴躁妹妹CSGO直播| 免费韩漫无遮漫画| 绝美儿媳妇林曼晏