添加线程锁工具

This commit is contained in:
dongRogen 2022-07-25 23:30:08 +08:00
parent 8d70e376df
commit d5230b926f

View File

@ -0,0 +1,19 @@
package top.jie65535.jcf.util
import java.util.concurrent.locks.Lock
import java.util.concurrent.locks.ReentrantLock
/**
* 线程锁工具
*/
class LockUtil<out T>(val state: T, val lock: Lock = ReentrantLock()) {
inline fun <R> withLock(fn: T.()->R): R {
try {
lock.lock()
return fn(state)
} finally {
lock.unlock()
}
}
}