上一页 1 2 3 4 5 6 ··· 15 下一页
摘要: 1、volatile变量是一种稍弱的同步机制在访问volatile变量时不会执行加锁操作,因此也就不会使执行线程阻塞,因此volatile变量是一种比synchronized关键字更轻量级的同步机制。 2、从内存可见性的角度看,写入volatile变量相当于退出同步代码块,而读取volatile变量 阅读全文
posted @ 2016-12-22 10:23 文洁丫头 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处: volatile用处说明 在JDK1.2之前,Java的内存模型实现总是从主存(即共享内存)读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下volatile关键字的使用变得非常重要。 在当前的Java内存模型下,线程可以把变量保存在本地内存(比如机器 阅读全文
posted @ 2016-12-22 10:20 文洁丫头 阅读(614) 评论(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) 编辑
摘要: 占坑 阅读全文
posted @ 2016-12-19 20:41 文洁丫头 阅读(127) 评论(0) 推荐(0) 编辑
摘要: notify通知的遗漏很容易理解,即threadA还没开始wait的时候,threadB已经notify了,这样,threadB通知是没有任何响应的,当threadB退出synchronized代码块后,threadA再开始wait,便会一直阻塞等待,直到被别的线程打断。 实例见 :https:// 阅读全文
posted @ 2016-12-19 20:39 文洁丫头 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17225469 wait()方法:public final void wait() throws InterruptedException,IllegalMonitorStateExcepti 阅读全文
posted @ 2016-12-19 20:28 文洁丫头 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17200937 大部分代码并不容易产生死锁,死锁可能在代码中隐藏相当长的时间,等待不常见的条件地发生,但即使是很小的概率,一旦发生,便可能造成毁灭性的破坏。避免死锁是一件困难的事,遵循以下原则 阅读全文
posted @ 2016-12-19 17:30 文洁丫头 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 转载请注明出处:http://blog.csdn.net/ns_code/article/details/17200509 在集合API中,最初设计的Vector和Hashtable是多线程安全的。例如:对于Vector来说,用来添加和删除元素的方法是同步的。如果只有一个线程与Vector的实例交互 阅读全文
posted @ 2016-12-19 17:27 文洁丫头 阅读(293) 评论(0) 推荐(0) 编辑
摘要: Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能 阅读全文
posted @ 2016-12-19 17:17 文洁丫头 阅读(223) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 15 下一页