接口的使用
org.tio.utils.lock.ReadWriteLockHandler
使用ReadWriteLockHandler的程序包
-
org.tio.utils.lock中ReadWriteLockHandler的使用
参数类型为ReadWriteLockHandler的org.tio.utils.lock中的方法修饰符和类型方法说明static voidLockUtils.runWriteOrWaitRead(String key, Object myLock, ReadWriteLockHandler readWriteLockHandler) 用读写锁操作
1、能拿到写锁的线程会执行readWriteLockHandler.write()
2、没拿到写锁的线程,会等待获取读锁,注:获取到读锁的线程,什么也不会执行
3、当一段代码只允许被一个线程执行时,才用本函数,不要理解成同步等待了
注意:对于一些需要判断null等其它条件才执行的操作,在write()方法中建议再检查一次,这个跟double check的原理是一样的static voidLockUtils.runWriteOrWaitRead(String key, Object myLock, ReadWriteLockHandler readWriteLockHandler, Long readWaitTimeInSecond) 运行write或者等待读锁
1、能拿到写锁的线程会执行readWriteLockHandler.write()
2、没拿到写锁的线程,会等待获取读锁,注:获取到读锁的线程,什么也不会执行
3、当一段代码只允许被一个线程执行时,才用本函数,不要理解成同步等待了
注意:对于一些需要判断null等其它条件才执行的操作,在write()方法中建议再检查一次,这个跟double check的原理是一样的