摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17512983 CyclicBarrier(又叫障碍器)同样是Java 5中加入的新特性,使用时需要导入java.util.concurrent.CylicBarrier。它适用于这样一种情况 阅读全文
posted @ 2016-12-22 11:59 文洁丫头 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 阻塞队列 阻塞队列是Java 5并发新特性中的内容,阻塞队列的接口是java.util.concurrent.BlockingQueue,它有多个实现类:ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue、PriorityBlockingQueue、S 阅读全文
posted @ 2016-12-22 11:47 文洁丫头 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17465497 Executor框架简介 在Java 5之后,并发编程引入了一堆新的启动、调度和管理线程的API。Executor框架便是Java 5中引入的,其内部使用了线程池机制,它在ja 阅读全文
posted @ 2016-12-22 10:48 文洁丫头 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17377197 主内存与工作内存 Java内存模型的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量主要是指共享变量,存在竞争问 阅读全文
posted @ 2016-12-22 10:47 文洁丫头 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17348313 happen—before规则介绍 Java语言中有一个“先行发生”(happen—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生 阅读全文
posted @ 2016-12-22 10:38 文洁丫头 阅读(5111) 评论(0) 推荐(0) 编辑
摘要: 1、volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制。 2、从内存可见性的角度看,写入volatile变量相当于退出同步代码块,而读取volatile变量 阅读全文
posted @ 2016-12-22 10:23 文洁丫头 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处: volatile用处说明 在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。 在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器 阅读全文
posted @ 2016-12-22 10:20 文洁丫头 阅读(613) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17288243 加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另外一个重要的方面:内存可见性。我们不仅希望防止某个线程正在使用对象状态而另一个线程在同时修改该状态, 阅读全文
posted @ 2016-12-22 09:53 文洁丫头 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 生产者消费者问题是线程模型中的经典问题:生产者和消费者在同一时间段内共用同一存储空间,生产者向空间里生产数据,而消费者取走数据。 这里实现如下情况的生产--消费模型: 生产者不断交替地生产两组数据“姓名--1 --> 内容--1”,“姓名--2--> 内容--2”,消费者不断交替地取得这两组数据,这 阅读全文
posted @ 2016-12-22 09:19 文洁丫头 阅读(171) 评论(0) 推荐(0) 编辑