
并发编程
HelloNBA
Java/大数据/云原生 架构师
展开
-
并发编程之代码解释死锁问题
/** * 死锁问题DeadLock,在设计程序时就应该避免双方相互持有对方的锁的情况 * @author gb * */ public class DeadLock implements Runnable{ private String tag; private static Object lock1 = new Object(); private static...原创 2019-10-24 14:21:38 · 222 阅读 · 0 评论 -
并发编程之对象锁的同步和异步问题代码示例
/** * 对象锁的同步和异步问题 * @author gb */ public class ObjectLockSyn { public synchronized void method1(){ try { System.out.println(Thread.currentThread().getName()); T...原创 2019-10-24 14:15:20 · 175 阅读 · 0 评论 -
并发编程之synchronized取得的锁都是对象锁 代码示例
/** * 关键字synchronized取得的锁都是对象锁,而不是把一段代码(方法)当做锁, * 所以代码中哪个线程先执行synchronized关键字的方法,哪个线程就持有该方法所属对象的锁(Lock), * 在静态方法上加synchronized关键字,表示锁定.class类,类一级别的锁(独占.class类)。 * @author gb * */ public class M...原创 2019-10-24 14:12:10 · 160 阅读 · 0 评论 -
并发编程之 线程安全概念代码示例
import java.util.concurrent.atomic.AtomicInteger; /** * 线程安全概念:当多个线程访问某一个类(对象或方法)时,这个对象始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。 * synchronized:可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区" * @author gb * */ publ...原创 2019-10-24 14:07:09 · 180 阅读 · 0 评论