阿西河

所有教程

公众号
🌙
阿西河前端的公众号

我的收藏

    最近访问  (文章)

      教程列表

      抓包专区
      测试专区

      JS Atomics.notify()

      静态方法 **Atomics**.notify() 提醒一些在等待队列中休眠的代理。

      **注意:**本操作仅在共享的 Int32Array 下可用。

      语法

      Atomics.notify(typedArray, index, count)
      
      

      参数

      typedArray

      一个共享的 Int32Array

      index

      typedArray 中要唤醒的目标索引。

      count

      要通知的正在休眠的代理的数量。默认是 +Infinity

      返回值

      被唤醒的代理的数量。

      异常

      • 若 typedArray 不是共享的 Int32Array,则抛出一个 TypeError 异常。
      • 若 index 索引超出了 typedArray 的大小,则抛出一个 RangeError 异常。

      示例

      分配一个共享的 Int32Array

      var sab = new SharedArrayBuffer(1024);
      var int32 = new Int32Array(sab);
      
      

      一个读线程会进入休眠并监视索引0处的值(默认为0)。只要索引0处的值不为0,读进程就会唤醒。但是,一旦写进程存储了一个新的值,写进程就会产生一个提醒并返回写入后的新值(123)。

      Atomics.wait(int32, 0, 0);
      console.log(int32[0]); // 123
      

      写进程写入一个新值并告知等待进程已经写入成功了:

      console.log(int32[0]); // 0;
      Atomics.store(int32, 0, 123); 
      Atomics.notify(int32, 0, 1);
      

      规范

      规范状态注释
      ECMAScript Latest Draft (ECMA-262)Atomics.notifyDraftInitial definition in ES2017.

      相关文档

      目录
      目录