文件名称:async-mutex:用于同步Javascript异步工作流的互斥量
文件大小:70KB
文件格式:ZIP
更新时间:2024-05-20 07:24:00
TypeScript
它是什么? 该软件包实现了用于同步Javascript异步操作的原语。 互斥体 术语“互斥体”通常是指用于同步在不同线程上运行的并发进程的数据结构。 例如,在访问非线程安全资源之前,线程将锁定互斥锁。 这样可以保证阻塞线程,直到没有其他线程在互斥锁上锁定为止,从而强制对资源进行独占访问。 操作完成后,线程将释放锁,从而允许其他线程获取锁并访问资源。 尽管Javascript严格是单线程的,但其执行模型的异步特性允许需要类似同步原语的竞争条件。 例如,考虑与Web工作者进行通信的库,该图书馆需要与该工作者交换一些后续消息才能完成任务。 由于这些消息是以异步方式交换的,因此很有可能在此过程中再次调用该库。 根据异步过程中处理状态的方式,这将导致难以修复甚至更难以追踪的竞争条件。 该库通过将互斥量的概念应用于Javascript解决了该问题。 锁定互斥锁将返回一个承诺,一旦互斥锁可用,该承
【文件预览】:
async-mutex-master
----package.json(2KB)
----.github()
--------workflows()
----test()
--------withTimeout.ts(9KB)
--------tryAcquire.ts(3KB)
--------mutex.ts(5KB)
--------semaphore.ts(7KB)
--------util.ts(240B)
----LICENSE(1KB)
----src()
--------withTimeout.ts(2KB)
--------Mutex.ts(884B)
--------SemaphoreInterface.ts(542B)
--------tryAcquire.ts(745B)
--------errors.ts(224B)
--------Semaphore.ts(2KB)
--------index.ts(342B)
--------MutexInterface.ts(499B)
----tsconfig.json(527B)
----tsconfig.es6.json(148B)
----.gitignore(56B)
----tsconfig.mjs.json(155B)
----CHANGELOG.md(2KB)
----.mocharc.json(79B)
----README.md(12KB)
----yarn.lock(124KB)
----.vscode()
--------settings.json(68B)