29 lines
457 B
JavaScript
29 lines
457 B
JavaScript
/* 原子尝试锁, 非阻塞且线程安全, 可用于异步多线程 */
|
|
class TryLock
|
|
{
|
|
constructor()
|
|
{
|
|
this._locked = false;
|
|
}
|
|
/**
|
|
* 尝试获取锁
|
|
* true: 获取成功, false: 已被锁定
|
|
*/
|
|
tryLock()
|
|
{
|
|
if (this._locked)
|
|
{
|
|
return false;
|
|
}
|
|
this._locked = true;
|
|
return true;
|
|
}
|
|
|
|
/* 释放锁资源 */
|
|
release()
|
|
{
|
|
this._locked = false;
|
|
}
|
|
}
|
|
export default TryLock;
|
|
// module.exports = TryLock;
|