文件名称:设计模式简述
文件大小:551KB
文件格式:PDF
更新时间:2021-04-29 02:20:40
设计模式
以ReentrantLock为例,state初始化为0,表示未锁定状态。A线程调用lock()方法时,会调用tryAcquire()独占锁并将state+1。此后,其它线程再tryAcquire()就会失败,直到线程A调用unlock()到state=0(即释放锁)。当然,锁在释放之前,A线程自己可以重复获得此锁(state会累加),这就是可重入的概念。但是要注意,获取多少次就要释放多少次,这样才能保证state回到零状态。