VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > temp > JavaScript教程 >
  • JS实现线程锁(Promise),NodeJS并发锁处理

复制代码
// 线程锁
let isLock = false;
let lockList = [];
async function lock() {
  function unlock() {
    let waitFunc = lockList.shift();
    if (waitFunc) {
      waitFunc.resolve(unlock);
    } else {
      isLock = false;
    }
  }
  if (isLock) {
    return new Promise((resolve, reject) => {
      lockList.push({ resolve, reject });
    });
  } else {
    isLock = true;
    return unlock;
  }
}
复制代码

 

使用:

let unlock = await lock();

//xxxxxxxxxxxxxx

unlock();

 

说明:

在使用await lock()时会等待上一个线程执行结束,代码才会往下走

 

致读者:感谢你阅读本文,请随手点击右下角的推荐或分享,谢谢!
 
出处:https://www.cnblogs.com/yzeng/p/14991784.html

相关教程