并发编程
给糖吃的小骗子
懒人
展开
-
通过Condition实现自己的阻塞队列
博主原文地址:点击打开链接 阻塞队列与普通队列的区别在于,当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。试图从空的阻塞队列中获取元素的线程将会被阻塞,直到其他的线程往空的队列插入新的元素。同样,试图往已满的阻塞队列中添加新元素的线程同样也会被阻塞,直到其他的线程使队列重新变得空闲起来 阻塞队列常用在多线程环境中,在生产者与消费者模式原创 2017-12-13 20:29:44 · 742 阅读 · 0 评论 -
volatile关键字的作用
Java中的关键字volatile是Java中提供的最轻量级的同步机制,那么为何可以在不加锁的情况下就可以用volatile来实现同步呢?这要得益于volatitle关键字的两大特性:内存可见性、禁止重排序。一.内存可见性 了解volatile是如何实现内存可见性之前,我们需要知道Java中主内存与工作内存的工作机制: Java内存模型中规定了所有的变量都存储在主内存中,每条线程还有自己的...原创 2018-03-25 10:21:30 · 1065 阅读 · 0 评论