ade*_*ago 18 javascript atomic
我无法理解原子对象如何在现实生活中使用,或者它们仅供内部使用(即根本不需要调用).
该Atomics对象在JavaScript中有什么作用?我该如何使用它们?
BSe*_*zin 15
此功能是在ECMAScript 2017中引入的.Shared Memory它Atomics引入了一种新的内存模型,允许多代理程序使用原子操作进行通信,即使在并行CPU上也能确保良好定义的执行顺序.该规范还包括新的静态方法Object:Object.values,Object.entries,和Object.getOwnPropertyDescriptors.
主要思想是为JavaScript提供某种多线程功能,以便JS开发人员可以通过自己管理内存而不是让JS引擎管理内存来编写高性能的并发程序.
这是通过一种新类型的全局对象来完成的,该对象SharedArrayBuffer实际上将数据存储在共享内存空间中.因此,这些数据可以在主JS线程和Web工作线程之间共享.
您只需使用SharedArrayBuffer,主线程和多个Web工作线程都可以立即访问数据.
但是在线程之间共享内存会导致竞争条件.为了帮助避免竞争条件,Atomics引入了全局对象.Atomics提供了各种方法来在线程使用其数据时锁定共享内存.它还提供了安全地更新共享内存中的此类数据的方法.
让我们等一些新的抽象库,它将使用这些API.
使用Atomics避免SharedArrayBuffers中的竞争条件
还建议在ECMAScript中查看有关共享内存的教程.
多线程编程的危险
为了解决前面的问题,我们可以做什么?
使用原子选项
Atomics 对象提供原子操作,如添加、子和、或、异或、加载、存储等作为静态方法。它们与 SharedArrayBuffer 对象一起使用。
有关更多信息和一个很好的例子:来源:https : //www.slideshare.net/barakdrechsler/atomic-javascript
https://www.geeksforgeeks.org/atomics-or-in-javascript/
好的资源第 12 章 SharedArrayBuffer 在:
Phang, C. L. (2017). An Effective Guide to Modern JavaScript:(ECMAScript 2017/ES 8). Chong Lip Phang.
<iframe frameborder="0" scrolling="no" style="border:0px" src="https://books.google.com.tw/books?id=--gvDwAAQBAJ&lpg=PP3&ots=zqgshUnSQa&dq=atomic%20%20SharedArrayBuffer%20%20for%20javascript&lr&pg=PA80&output=embed" width=500 height=500></iframe>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1959 次 |
| 最近记录: |