文件名称:harmonyos2-harmony:JS的多版本并发控制
文件大小:57KB
文件格式:ZIP
更新时间:2024-07-21 09:18:28
系统开源
和声2 和谐:JS的多版本并发控制 和谐是一种尝试,将其移植到像 JavaScript 这样的单线程上下文中。 目标是提供一种方法来在称为“refs”的可变值上构建一组操作(“事务”),安排它们中的每一个运行,然后在一个滴答声中原子地提交所有突变。 通过将事务拆分为多个“thunk”操作,它允许我们在事务中执行 CPU 密集型工作,同时定期让主线程允许其他工作发生。 如何拆分工作并安排它运行的确切策略留给读者作为练习。 :beaming_face_with_smiling_eyes: 为了做到这一点,我们借用了跟踪“ref”的“交易中”值的想法,我们希望将其与共享的全局值分开。 这样,一个事务可以随着时间的推移建立它的结果,然后当它运行到完成时,将最终结果提交为 ref 的新全局值。 Transactions 和 refs 具有以下属性: 任何东西都可以随时“读取”一个 ref 值。 Refs 只能在事务中更改(或“写入”)。 ref 中的值不应该只发生变异; 应该首选不可变数据 事务和操作可以读写多个引用 许多事务可以同时启动。 每个事务都会跟踪事务中使用的每个 ref 的当前值。 提交事务将立即自动更新其所有引用。 如果事务读取/写入 ref
【文件预览】:
harmony-master
----build.ts(3KB)
----.gitignore(47B)
----package.json(427B)
----Makefile(251B)
----package-lock.json(176KB)
----src()
--------index.ts(6KB)
----jest.config.js(142B)
----tsconfig.json(6KB)
----README.md(7KB)
----tests()
--------test.ts(4KB)