国产成人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是实现公平模式的要点。

关注

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

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

两只奶头被老头吸肿了| 欧美人动物PPT免费模板大全 | 妈妈总是晚上装睡配合孩子| 暴躁妹妹免费观看40集电视剧| 啵啵浏览器| 雨后的故事动态图| 扌击辶鬲的小说父女| 《慈母夜吟》完整版| 无人区免费观看高清电视剧| 欧美电影免费观看大全能出没| 《不再是朋友的夜晚第二季》| 老师穿黑色双开真丝旗袍如何穿芭.. | 老师和学生深入交流人生奥秘| 爱痴癫| 情满四合院演员表| 黄金网站APP免费| 人间水蜜桃MAC923| 看镜子里我们的结合的地方| 《请好好疼爱里面》免费观看| 他的大手在秘密花园游走漫画| 美国A片巜禁忌6| 人与动物胶配方视频荷尔蒙| B站暴躁姐的丈夫是干什么的| 比白洁还牛的四大书 | 女人荫蒂被添全过程A片免费| 成全视频观看免费高清中国电视剧| 老师好爽要尿了潮喷了18P| 姐妹花破瓜双飞记的寓意和象征意..| 女狼俱乐部| 女同学上课用嘴帮我口出来| 小蜜桃免费观看高清电视剧| 中华性文化博物馆| 年轻的嫂子2| 我的青春谁做主在线 | 儿子耕种母亲的田地的收获| 妈妈叫我老公我叫妈妈的名字| 暴躁老阿姨CSGO技能推荐大全| 女人尝试到更粗大的心理变化 | GTV一同看GTV蓝颜| 《杨梅熟了》 BY肉馅小水饺讲的.. | 鲁鲁射击免费播放电视剧全部