diff --git a/src/main/kotlin/top/jie65535/jcf/util/LockUtil.kt b/src/main/kotlin/top/jie65535/jcf/util/LockUtil.kt new file mode 100644 index 0000000..3bb9453 --- /dev/null +++ b/src/main/kotlin/top/jie65535/jcf/util/LockUtil.kt @@ -0,0 +1,19 @@ +package top.jie65535.jcf.util + +import java.util.concurrent.locks.Lock +import java.util.concurrent.locks.ReentrantLock + +/** + * 线程锁工具 + */ +class LockUtil(val state: T, val lock: Lock = ReentrantLock()) { + + inline fun withLock(fn: T.()->R): R { + try { + lock.lock() + return fn(state) + } finally { + lock.unlock() + } + } +}