2015年11月29日

多线程之:如何避免死锁

摘要: java代码中,我们如何避免死锁呢?根据死锁产生的原因,我们可以得出解决方法,那就是多线程环境下以相同顺序获取一组锁;另外,由于无限期等待对方所持有的锁导致死锁,因此可采取限时等待,当超过设定时间时还无法获取到锁时,可尝试重试或者放弃锁的获取,行其他操作,总的来说,避免死锁有以下两种方法:1、以相同... 阅读全文

posted @ 2015-11-29 22:31 jessezeng 阅读(566) 评论(0) 推荐(0) 编辑

多线程之:死锁

摘要: 死锁指两个或者多个线程持有锁的同时并等待对方持有的锁,导致无限期等待的情况,通常发生于以不同顺序请求同一组锁。两个线程以不同顺序获取一组锁会导致死锁,如: 1 public class DeadLockTest { 2 3 public static class LockGroup{ 4 ... 阅读全文

posted @ 2015-11-29 22:03 jessezeng 阅读(300) 评论(0) 推荐(0) 编辑

多线程之:ThreadLocal

摘要: Java中ThreadLocal类可以使创建的变量只被同一个线程进行读和写操作,即使有多个线程同时执行同一段代码,并且这段代码中又有一个指向同一个ThreadLocal变量的引用,这些线程依然不能看到彼此ThreadLocal变量域,只能看到自己私有的ThreadLocal实例。看看如下demo: ... 阅读全文

posted @ 2015-11-29 18:51 jessezeng 阅读(289) 评论(0) 推荐(0) 编辑

多线程之:线程同步代码块

摘要: java中使用关键字synchronized进行线程同步,有四中同步块: 1、实例方法 2、静态方法 3、实例方法中的同步块 4、静态方法中的同步块实例方法同步:在方法申明中使用synchronized 关键字,同步在拥有该方法的对象上1 public synchronized void... 阅读全文

posted @ 2015-11-29 10:42 jessezeng 阅读(326) 评论(0) 推荐(0) 编辑

导航