We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

静的メソッドである Atomics.wake() は待ち行列中のいくつかのエージェントを起こします。

付記:この操作は共有された Int32Array に対してのみ許可されています。

構文

Atomics.wake(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)をストアした場合、読み手のスレッドは読み手のスレッドによって起こされ、新しい値 (123)を取得します。

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

書き手のスレッドは新しい値をストアし、待っているスレッドを起こします:

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

仕様

仕様 状態 コメント
Unknown
Atomics.wake の定義
不明 初期定義

ブラウザ互換性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Feature Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Basic support 未サポート [2] 未サポート 46 (46) [1] [3] 未サポート 未サポート 未サポート
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support 未サポート 未サポート 46.0 (46) [1] 未サポート 未サポート 未サポート

[1] 設定で無効になっています。about:config で javascript.options.shared_memorytrue に設定することで利用できます。

[2] 現在実装中で、利用には次のオプションをつけて起動する必要があります:--js-flags=--harmony-sharedarraybuffer --enable-blink-feature=SharedArrayBuffer

[3] バージョン 46 と 47 では Atomics.futexWake() という名前で利用できます。また引数 count の既定値は 0 となっています。列の代わりに Atomics.OK、Atomics.TIMEDOUT、Atomics.NOTEQUAL を返します

関連情報

ドキュメントのタグと貢献者

このページの貢献者: chikoski
最終更新者: chikoski,