synchronized细节问题(二)
摘要:使用synchronized声明的方法在某些情况下是有弊端的,比如A线程调用同步的方法执行一个很长时间的任务,那么B线程就必须等待比较长的时间才能执行,这样的情况下,可以使用synchronized代码块去优化代码执行时间,也就是通常所说的减小锁的粒度。 synchronized可以使用任意的Obj
阅读全文
posted @
2017-02-10 14:56
小~虎
阅读(136)
推荐(0)
synchronized细节问题(一)
摘要:synchronized锁重入: 关键字synchronized拥有锁重入的功能,也就是在使用synchronized时,当一个线程得到一个对象的锁后,再次请求此对象时是可以再次得到该对象的锁。 下面看一段锁重入的小demo: method1..method2..method3.. 这是一个最简单的
阅读全文
posted @
2017-02-10 14:03
小~虎
阅读(253)
推荐(0)
脏读
摘要:脏读:对于对象的同步和异步的方法,我们在设计自己的程序的时候,一定要考虑问题的整体,不然就会出现数据不一致的错误,很经典的错误就是脏读(dirtyread) 我们首先通过一个小demo来认识一下脏读: setValue最终结果:username = z3 , password = 456getVal
阅读全文
posted @
2017-02-09 16:11
小~虎
阅读(226)
推荐(0)
线程基础(二)
摘要:一、多个线程多个锁 多个线程多个锁:多个线程,每个线程都可以拿到自己指定的锁,分别获得锁之后,执行synchronized方法体的内容。 代码如下: tag a , set nunm overtag a,num = 100tag b , set nunm overtag b,num = 200 实际
阅读全文
posted @
2017-02-09 11:46
小~虎
阅读(167)
推荐(0)
线程基础(一)
摘要:恢复内容开始 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个类始终都能变现出正确的行为,那么这个类(对象或方法)就是线程安全的。 synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区"。 下面看一段代码: t3 count = 2t5 count
阅读全文
posted @
2017-02-09 09:58
小~虎
阅读(116)
推荐(0)