一 只 程 序 原

"并发"

死磕juc(二)java的“锁”事(2)

java的”锁“事(2)一、公平锁和非公平锁1.1 从ReentrantLock卖票编码演示公平和非公平现象class Ticket{ private int number = 30; ReentrantLock lock = new ReentrantLock(); // 默认 Ree

死磕juc(二)java的“锁”事(1)

java的”锁“事(1)一、乐观锁和悲观锁1.1 悲观锁认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。synchronized关键字和Lock的实现类都是悲观锁适合写操作多的场景,先加锁可以保证写操作时数据正确。显式的锁定之后再操作同步资

死磕Juc(一)之CompletableFuture

死磕Juc(一)之CompletableFuture一、Future和Callable接口Future接口定义了操作异步任务执行一些方法,如获取异步任务的执行结果、取消任务的执行、判断任务是否被取消、判断任务执行是否完毕等。Callable接口中定义了需要有返回的任务需要实现的方法@Function