Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2021年12月以降、すべてのブラウザーで利用可能です。
Atomics.wait() 静的メソッドは、共有メモリー位置に指定された値が含まれていることを確認し、含まれている場合は、覚醒通知またはタイムアウトを待つために休眠します。メモリー位置が指定された値と一致しない場合は "not-equal"、 Atomics.notify() によって覚醒した場合は "ok"、タイムアウトが切れた場合は "timed-out" という文字列を返します。
Atomics.wait() と Atomics.notify() は、共有メモリー内の値に基づいてスレッドの同期ができるようにするために一緒に使用されます。スレッドは、同期値が変更された場合、すぐに処理を続行することも、同期ポイントに到達したときに別のスレッドからの通知を待つこともできます。
このメソッドは、SharedArrayBuffer のビューである Int32Array または BigInt64Array でのみ動作します。これはブロッキング操作であり、メインスレッドでは使用できません。このメソッドの非ブロック、非同期バージョンについては、Atomics.waitAsync() をご覧ください。
SharedArrayBuffer のビューである Int32Array または BigInt64Array
index待つ対象となる typedArray の中の位置。
value検査で期待される値。
timeout 省略可待機時間(ミリ秒単位)。NaN(および NaN に変換される値、たとえば undefined)は Infinity になります。負の値は 0 になります。
文字列で、 "not-equal", "ok", "timed-out" のいずれかです。
次のいずれかの場合に発生します。
index が typedArray の範囲を超えている場合に発生します。
次のような共有された Int32Array があったとします。
読み取りスレッドは、指定された value が指定された index に格納されている値と一致するため、位置 0 で休眠して待機しています。 書き込みスレッドが、指定された typedArray の位置 0 で Atomics.notify() を呼び出すまで、読み取りスレッドは移動しません。 覚醒した後、位置 0 の値が書き込みスレッドによって変更されていない場合、読み取りスレッドは休眠状態に戻らず、処理を続行することに注意してください。
書き手のスレッドは新しい値を格納し、待っているスレッドに書き込みが完了したことを知らせます。
| ECMAScript® 2027 Language Specification # sec-atomics.wait |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。