摘要:
场景描述 1.有两个对象锁A1、A2 2.两个线程t1、t2 3.t1的执行顺序是A1-->A2, t2的执行顺序是A2-->A1 4.出现状态 t1持有 A1 锁,等待 A2 锁; t2 持有 A2 锁,等待 A1 锁 5.出现死锁 检查死锁方法:使用jps查看线程pid,用jstack pid查 阅读全文
摘要:
概念 synchronized 是 Java 中的关键字,是利用锁的机制来实现同步的。 锁机制有如下两种特性: 互斥性:即在同一时间只允许一个线程持有某个对象锁,通过这种特性来实现多线程中的协调机制,这样在同一时间只有一个线程对需同步的代码块(复合操作)进行访问。互斥性我们也往往称为操作的原子性。 阅读全文
摘要:
使用synchronized(object)实现线程安全 测试代码 使用synchronized给方法签名加锁实现线程安全 使用synchronized(this)实现线程安全 使用synchronized加锁的时候尽量减小加锁部分代码的粒度,在保证必要的数据安全前提下减少程序执行时间 阅读全文