From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../global_objects/atomics/notify/index.html | 93 ++++++++++++++++++++++ 1 file changed, 93 insertions(+) create mode 100644 files/zh-cn/web/javascript/reference/global_objects/atomics/notify/index.html (limited to 'files/zh-cn/web/javascript/reference/global_objects/atomics/notify') diff --git a/files/zh-cn/web/javascript/reference/global_objects/atomics/notify/index.html b/files/zh-cn/web/javascript/reference/global_objects/atomics/notify/index.html new file mode 100644 index 0000000000..bf2399192c --- /dev/null +++ b/files/zh-cn/web/javascript/reference/global_objects/atomics/notify/index.html @@ -0,0 +1,93 @@ +--- +title: Atomics.notify() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/notify +tags: + - Atomics + - JavaScript + - Method + - Shared Memory +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/notify +--- +
{{JSRef}}
+ +

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

+ +
+

注意:本操作仅在共享的 {{jsxref("Int32Array")}} 下可用。

+
+ +

语法

+ +
Atomics.notify(typedArray, index, count)
+
+ +

参数

+ +
+
typedArray
+
一个共享的 {{jsxref("Int32Array")}}。
+
index
+
typedArray 中要唤醒的目标索引。
+
count
+
要通知的正在休眠的代理的数量。默认是 {{jsxref("Infinity", "+Infinity")}}。
+
+ +

返回值

+ +

被唤醒的代理的数量。

+ +

异常

+ + + +

示例

+ +

分配一个共享的 Int32Array

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

一个读线程会进入休眠并监视索引0处的值(默认为0)。只要索引0处的值不为0,读进程就会唤醒。但是,一旦写进程存储了一个新的值,写进程就会产生一个提醒并返回写入后的新值(123)。(这里示例有问题或者说对初学者不友好,如果直接在浏览器控制台运行下面代码会报错,因为我们不能尝试睡眠主线程,可以见 重学js —— 结构化数据之Atomics对象,同时我在 codepen 写了一个示例:Atomics.wait使用示例

+ +
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);
+ +

规范

+ + + + + + + + + + + + + + +
规范状态注释
{{SpecName('ESDraft', '#sec-atomics.notify', 'Atomics.notify')}}{{Spec2('ESDraft')}}Initial definition in ES2017.
+ +

浏览器兼容性

+ + + +

{{Compat("javascript.builtins.Atomics.notify")}}

+ +

相关文档

+ + -- cgit v1.2.3-54-g00ecf