diff options
author | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-12-10 00:17:01 +0900 |
---|---|---|
committer | Masahiro FUJIMOTO <mfujimot@gmail.com> | 2021-12-19 03:03:48 +0900 |
commit | c3fdf27c2d7a26303ceffd2ee9394a4fc3195dce (patch) | |
tree | 3037bbe8c3b018b115b16e99ccfae9afd6b4780c /files/ja/web/javascript/reference/global_objects | |
parent | f1a593f144701dc20657e81e2be5395433912fd9 (diff) | |
download | translated-content-c3fdf27c2d7a26303ceffd2ee9394a4fc3195dce.tar.gz translated-content-c3fdf27c2d7a26303ceffd2ee9394a4fc3195dce.tar.bz2 translated-content-c3fdf27c2d7a26303ceffd2ee9394a4fc3195dce.zip |
Global_Objects/Atomics 以下の変換準備
Diffstat (limited to 'files/ja/web/javascript/reference/global_objects')
18 files changed, 680 insertions, 730 deletions
diff --git a/files/ja/web/javascript/reference/global_objects/atomics/add/index.html b/files/ja/web/javascript/reference/global_objects/atomics/add/index.md index 8d74a1f890..8d74a1f890 100644 --- a/files/ja/web/javascript/reference/global_objects/atomics/add/index.html +++ b/files/ja/web/javascript/reference/global_objects/atomics/add/index.md diff --git a/files/ja/web/javascript/reference/global_objects/atomics/and/index.html b/files/ja/web/javascript/reference/global_objects/atomics/and/index.md index c03d40648b..c03d40648b 100644 --- a/files/ja/web/javascript/reference/global_objects/atomics/and/index.html +++ b/files/ja/web/javascript/reference/global_objects/atomics/and/index.md diff --git a/files/ja/web/javascript/reference/global_objects/atomics/compareexchange/index.html b/files/ja/web/javascript/reference/global_objects/atomics/compareexchange/index.html deleted file mode 100644 index 085bc56c0d..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/compareexchange/index.html +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Atomics.compareExchange() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange -tags: - - Atomics - - JavaScript - - Method - - Shared Memory - - メソッド - - 共有メモリ -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange ---- -<div>{{JSRef}}</div> - -<p>静的な <code><strong>Atomics</strong></code><strong><code>.compareExchange()</code></strong> メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。</p> - -<div>{{EmbedInteractiveExample("pages/js/atomics-compareexchange.html")}}</div> - -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Atomics.compareExchange(<var>typedArray</var>, <var>index</var>, <var>value</var>) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> - <dt><code><var>index</var></code></dt> - <dd><code><var>typedArray</var></code> で <code><var>value</var></code> と交換する位置です。</dd> - <dt><code><var>expectedValue</var></code></dt> - <dd>等価性をチェックする値です。</dd> - <dt><code><var>replacementValue</var></code></dt> - <dd>交換する数値です。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>指定された位置にあった古い値です (<code><var>typedArray</var>[<var>index</var>]</code>)。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。</li> - <li><code><var>typedArray</var></code> が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_compareExchange" name="Using_compareExchange">compareExchange() の使用</h3> - -<pre class="brush: js">const sab = new SharedArrayBuffer(1024); -const ta = new Uint8Array(sab); -ta[0] = 7; - -Atomics.compareExchange(ta, 0, 7, 12); // returns 7, the old value -Atomics.load(ta, 0); // 12</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.compareexchange', 'Atomics.compareExchange')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.compareExchange")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.exchange()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/compareexchange/index.md b/files/ja/web/javascript/reference/global_objects/atomics/compareexchange/index.md new file mode 100644 index 0000000000..ea5e985410 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/compareexchange/index.md @@ -0,0 +1,80 @@ +--- +title: Atomics.compareExchange() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー + - メソッド + - 共有メモリ +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/compareExchange +--- +{{JSRef}} + +静的な <strong>Atomics</strong><strong>.compareExchange()</strong> メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。 + +{{EmbedInteractiveExample("pages/js/atomics-compareexchange.html")}} + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +## 構文 + +<pre class="syntaxbox">Atomics.compareExchange(typedArray, index, value) +</pre> + +### 引数 + +- typedArray + <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> +- index + <dd>typedArray で value と交換する位置です。</dd> +- expectedValue + <dd>等価性をチェックする値です。</dd> +- replacementValue + <dd>交換する数値です。</dd> + +### 返値 + +指定された位置にあった古い値です (typedArray[index])。 + +### 例外 + +- typedArray が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。 +- typedArray が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。 + +## 例 + +<h3 id="Using_compareExchange" name="Using_compareExchange">compareExchange() の使用</h3> + +<pre class="brush: js">const sab = new SharedArrayBuffer(1024); +const ta = new Uint8Array(sab); +ta[0] = 7; + +Atomics.compareExchange(ta, 0, 7, 12); // returns 7, the old value +Atomics.load(ta, 0); // 12</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.compareexchange', 'Atomics.compareExchange')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.compareExchange")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.exchange()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/exchange/index.html b/files/ja/web/javascript/reference/global_objects/atomics/exchange/index.html deleted file mode 100644 index 393227df92..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/exchange/index.html +++ /dev/null @@ -1,83 +0,0 @@ ---- -title: Atomics.exchange() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/exchange -tags: - - Atomics - - JavaScript - - Method - - Shared Memory - - メソッド - - 共有メモリ -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/exchange ---- -<div>{{JSRef}}</div> - -<p>静的な <code><strong>Atomics</strong></code><strong><code>.exchange()</code></strong> メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。これは不可分操作で、古い値を読み取ってから新しい値を書き込むまでの間に他の物が書き込まないことを保証します。</p> - -<div>{{EmbedInteractiveExample("pages/js/atomics-exchange.html")}}</div> - -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Atomics.exchange(<var>typedArray</var>, <var>index</var>, <var>value</var>) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> - <dt><code><var>index</var></code></dt> - <dd><code><var>typedArray</var></code> で <code><var>value</var></code> と交換する位置です。</dd> - <dt><code><var>value</var></code></dt> - <dd>交換する数値です。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>指定された位置にあった古い値です (<code><var>typedArray</var>[<var>index</var>]</code>)。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。</li> - <li><code><var>typedArray</var></code> が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_exchange" name="Using_exchange">exchange() の使用</h3> - -<pre class="brush: js">const sab = new SharedArrayBuffer(1024); -const ta = new Uint8Array(sab); - -Atomics.exchange(ta, 0, 12); // returns 0, the old value -Atomics.load(ta, 0); // 12</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.exchange', 'Atomics.exchange')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.exchange")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.compareExchange()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/exchange/index.md b/files/ja/web/javascript/reference/global_objects/atomics/exchange/index.md new file mode 100644 index 0000000000..332e3071f8 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/exchange/index.md @@ -0,0 +1,77 @@ +--- +title: Atomics.exchange() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/exchange +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー + - メソッド + - 共有メモリ +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/exchange +--- +{{JSRef}} + +静的な <strong>Atomics</strong><strong>.exchange()</strong> メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。これは不可分操作で、古い値を読み取ってから新しい値を書き込むまでの間に他の物が書き込まないことを保証します。 + +{{EmbedInteractiveExample("pages/js/atomics-exchange.html")}} + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +## 構文 + +<pre class="syntaxbox">Atomics.exchange(typedArray, index, value) +</pre> + +### 引数 + +- typedArray + <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> +- index + <dd>typedArray で value と交換する位置です。</dd> +- value + <dd>交換する数値です。</dd> + +### 返値 + +指定された位置にあった古い値です (typedArray[index])。 + +### 例外 + +- typedArray が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。 +- typedArray が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。 + +## 例 + +<h3 id="Using_exchange" name="Using_exchange">exchange() の使用</h3> + +<pre class="brush: js">const sab = new SharedArrayBuffer(1024); +const ta = new Uint8Array(sab); + +Atomics.exchange(ta, 0, 12); // returns 0, the old value +Atomics.load(ta, 0); // 12</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.exchange', 'Atomics.exchange')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.exchange")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.compareExchange()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/load/index.html b/files/ja/web/javascript/reference/global_objects/atomics/load/index.html deleted file mode 100644 index 1434196ac0..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/load/index.html +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Atomics.load() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/load -tags: - - Atomics - - JavaScript - - Method - - Shared Memory - - メソッド - - 共有メモリ -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/load ---- -<div>{{JSRef}}</div> - -<p>静的な <code><strong>Atomics</strong></code><strong><code>.load()</code></strong> メソッドは、配列内の指定された位置の値を返します。</p> - -<div>{{EmbedInteractiveExample("pages/js/atomics-load.html")}}</div> - -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Atomics.store(<var>typedArray</var>, <var>index</var>, <var>value</var>) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> - <dt><code><var>index</var></code></dt> - <dd><code><var>typedArray</var></code> の中で値を読み込む位置。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>指定された位置にある値です (<code><var>typedArray</var>[<var>index</var>]</code>)。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。</li> - <li><code><var>typedArray</var></code> が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_load" name="Using_load">load() の使用</h3> - -<pre class="brush: js">const sab = new SharedArrayBuffer(1024); -const ta = new Uint8Array(sab); - -Atomics.add(ta, 0, 12); -Atomics.load(ta, 0); // 12</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.load', 'Atomics.load')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.load")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.store()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/load/index.md b/files/ja/web/javascript/reference/global_objects/atomics/load/index.md new file mode 100644 index 0000000000..73158d0d61 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/load/index.md @@ -0,0 +1,75 @@ +--- +title: Atomics.load() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/load +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー + - メソッド + - 共有メモリ +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/load +--- +{{JSRef}} + +静的な <strong>Atomics</strong><strong>.load()</strong> メソッドは、配列内の指定された位置の値を返します。 + +{{EmbedInteractiveExample("pages/js/atomics-load.html")}} + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +## 構文 + +<pre class="syntaxbox">Atomics.store(typedArray, index, value) +</pre> + +### 引数 + +- typedArray + <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> +- index + <dd>typedArray の中で値を読み込む位置。</dd> + +### 返値 + +指定された位置にある値です (typedArray[index])。 + +### 例外 + +- typedArray が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。 +- typedArray が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。 + +## 例 + +<h3 id="Using_load" name="Using_load">load() の使用</h3> + +<pre class="brush: js">const sab = new SharedArrayBuffer(1024); +const ta = new Uint8Array(sab); + +Atomics.add(ta, 0, 12); +Atomics.load(ta, 0); // 12</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.load', 'Atomics.load')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.load")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.store()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/notify/index.html b/files/ja/web/javascript/reference/global_objects/atomics/notify/index.html deleted file mode 100644 index 9574f2c3c0..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/notify/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -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 -original_slug: Web/JavaScript/Reference/Global_Objects/Atomics/wake ---- -<div>{{JSRef}}</div> - -<p>静的メソッドである <code><strong>Atomics</strong></code><strong><code>.notify()</code></strong> は、待ち行列で休眠状態にあるいくつかのエージェントに通知します。</p> - -<div class="note"> -<p><strong>注:</strong> この操作は共有された {{jsxref("Int32Array")}} に対してのみ許可されています。<br> -共有されていない <code>ArrayBuffer</code> オブジェクトでは <code>0</code> を返します。</code></p> -</div> - -<h2 id="Syntax">構文</h2> - -<pre class="brush: js">Atomics.notify(typedArray, index, count) -</pre> - -<h3 id="Parameters">引数</h3> - -<dl> - <dt><code>typedArray</code></dt> - <dd>共有された {{jsxref("Int32Array")}}。</dd> - <dt><code>index</code></dt> - <dd>起動する対象となる <code>typedArray</code> 中の位置。</dd> - <dt><code>count</code></dt> - <dd>起動するエージェントの数。既定値は {{jsxref("Infinity", "+Infinity")}} です。</dd> -</dl> - -<h3 id="Return_value">返値</h3> - -<ul> - <li>起動したエージェントの数を返します。</li> - <li>共有されていない {{jsxref("ArrayBuffer")}} オブジェクトが使用された場合は、 <code>0</code> - を返します。</li> -</ul> - -<h3 id="Exceptions">例外</h3> - -<ul> - <li><code>typedArray</code> が {{jsxref("Int32Array")}} でない場合、{{jsxref("TypeError")}} が送出される。</li> - <li><code>index</code> が <code>typedArray</code> の範囲を超えている場合 {{jsxref("RangeError")}} が送出される。</li> -</ul> - -<h2 id="Examples">例</h2> - -<h3 id="Using_notify"><code>notify</code> の使用</h3> - -<p>共有された <code>Int32Array</code> を用意します:</p> - -<pre class="brush: js">const sab = new SharedArrayBuffer(1024); -const int32 = new Int32Array(sab); -</pre> - -<p>読み手のスレッドは、0 番目の値が 0 であることを期待してスリープします。それが満たされている間は処理が進みません。しかし、書き手のスレッドが新しい値をストアした場合、読み手のスレッドは読み手のスレッドによって起こされ、新しい値 (123) を取得します。</p> - -<pre class="brush: js">Atomics.wait(int32, 0, 0); -console.log(int32[0]); // 123</pre> - -<p>書き手のスレッドは新しい値を格納し、待機中のスレッドに通知を行います。</p> - -<pre class="brush: js">console.log(int32[0]); // 0; -Atomics.store(int32, 0, 123); -Atomics.notify(int32, 0, 1);</pre> - -<h2 id="Specifications">仕様書</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">仕様書</th> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.notify', 'Atomics.notify')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.notify")}}</p> - -<h2 id="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.wait()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/notify/index.md b/files/ja/web/javascript/reference/global_objects/atomics/notify/index.md new file mode 100644 index 0000000000..fc8dd35ec7 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/notify/index.md @@ -0,0 +1,87 @@ +--- +title: Atomics.notify() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/notify +tags: +- Atomics +- JavaScript +- メソッド +- 共有メモリー +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/notify +original_slug: Web/JavaScript/Reference/Global_Objects/Atomics/wake +--- +{{JSRef}} + +静的メソッドである <strong>Atomics</strong><strong>.notify()</strong> は、待ち行列で休眠状態にあるいくつかのエージェントに通知します。 + +<div class="note"> +<p><strong>注:</strong> この操作は共有された {{jsxref("Int32Array")}} に対してのみ許可されています。<br> +共有されていない ArrayBuffer オブジェクトでは 0 を返します。</code></p> +</div> + +<h2 id="Syntax">構文</h2> + +<pre class="brush: js">Atomics.notify(typedArray, index, count) +</pre> + +<h3 id="Parameters">引数</h3> + + - typedArray + <dd>共有された {{jsxref("Int32Array")}}。</dd> + - index + <dd>起動する対象となる typedArray 中の位置。</dd> + - count + <dd>起動するエージェントの数。既定値は {{jsxref("Infinity", "+Infinity")}} です。</dd> + +<h3 id="Return_value">返値</h3> + + - 起動したエージェントの数を返します。 + <li>共有されていない {{jsxref("ArrayBuffer")}} オブジェクトが使用された場合は、 0 + を返します。</li> + +<h3 id="Exceptions">例外</h3> + +- typedArray が {{jsxref("Int32Array")}} でない場合、{{jsxref("TypeError")}} が送出される。 +- index が typedArray の範囲を超えている場合 {{jsxref("RangeError")}} が送出される。 + +<h2 id="Examples">例</h2> + +<h3 id="Using_notify">notify の使用</h3> + +共有された Int32Array を用意します: + +<pre class="brush: js">const sab = new SharedArrayBuffer(1024); +const int32 = new Int32Array(sab); +</pre> + +読み手のスレッドは、0 番目の値が 0 であることを期待してスリープします。それが満たされている間は処理が進みません。しかし、書き手のスレッドが新しい値をストアした場合、読み手のスレッドは読み手のスレッドによって起こされ、新しい値 (123) を取得します。 + +<pre class="brush: js">Atomics.wait(int32, 0, 0); +console.log(int32[0]); // 123</pre> + +書き手のスレッドは新しい値を格納し、待機中のスレッドに通知を行います。 + +<pre class="brush: js">console.log(int32[0]); // 0; +Atomics.store(int32, 0, 123); +Atomics.notify(int32, 0, 1);</pre> + +<h2 id="Specifications">仕様書</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">仕様書</th> + </tr> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.notify', 'Atomics.notify')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.notify")}} + +<h2 id="See_also">関連情報</h2> + + - {{jsxref("Atomics")}} + - {{jsxref("Atomics.wait()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/or/index.html b/files/ja/web/javascript/reference/global_objects/atomics/or/index.html deleted file mode 100644 index 3259586fd2..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/or/index.html +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Atomics.or() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/or -tags: - - Atomics - - JavaScript - - Method - - Shared Memory -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/or ---- -<div>{{JSRef}}</div> - -<p>静的な <code><strong>Atomics</strong></code><strong><code>.or()</code></strong> メソッドは、配列内の指定した位置の値に指定した値でビット単位の OR を計算し、その位置にあった古い値を返します。これは不可分操作で、修正された値が書き戻されるまで、他の書き込みが起こらないことを保証します。</p> - -<div>{{EmbedInteractiveExample("pages/js/atomics-or.html")}}</div> - -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox notranslate">Atomics.and(<var>typedArray</var>, <var>index</var>, <var>value</var>) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>整数の型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}}, {{jsxref("BigInt64Array")}}, {{jsxref("BigUint64Array")}} の何れかです。</dd> - <dt><code><var>index</var></code></dt> - <dd><code><var>typedArray</var></code> でビット単位の OR を計算する位置です。</dd> - <dt><code><var>value</var></code></dt> - <dd>ビット単位の OR を取る数値です。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>指定された位置にあった古い値です (<code><var>typedArray</var>[<var>index</var>]</code>)。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Description" name="Description">解説</h2> - -<p>ビット単位の OR 操作は、 <code>a</code> と <code>b</code> のどちらかが 1 であった場合に 1 を生成します。 OR 操作の真理値表を示します。</p> - -<table class="standard-table"> - <thead> - <tr> - <th><code>a</code></th> - <th><code>b</code></th> - <th><code>a | b</code></th> - </tr> - </thead> - <tbody> - <tr> - <td>0</td> - <td>0</td> - <td>0</td> - </tr> - <tr> - <td>0</td> - <td>1</td> - <td>1</td> - </tr> - <tr> - <td>1</td> - <td>0</td> - <td>1</td> - </tr> - <tr> - <td>1</td> - <td>1</td> - <td>1</td> - </tr> - </tbody> -</table> - -<p>例えば、ビット単位の OR を <code>5 | 1</code> で行うと、結果は <code>0101</code> すなわち10進数で5となります。</p> - -<pre class="notranslate">5 0101 -1 0001 - ---- -5 0101 -</pre> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_or" name="Using_or">or の使用</h3> - -<pre class="brush: js notranslate">const sab = new SharedArrayBuffer(1024); -const ta = new Uint8Array(sab); -ta[0] = 2; - -Atomics.or(ta, 0, 1); // returns 2, the old value -Atomics.load(ta, 0); // 3</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.or', 'Atomics.or')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.or")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.and()")}}</li> - <li>{{jsxref("Atomics.xor()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/or/index.md b/files/ja/web/javascript/reference/global_objects/atomics/or/index.md new file mode 100644 index 0000000000..f391f8bc8c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/or/index.md @@ -0,0 +1,120 @@ +--- +title: Atomics.or() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/or +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/or +--- +{{JSRef}} + +静的な <strong>Atomics</strong><strong>.or()</strong> メソッドは、配列内の指定した位置の値に指定した値でビット単位の OR を計算し、その位置にあった古い値を返します。これは不可分操作で、修正された値が書き戻されるまで、他の書き込みが起こらないことを保証します。 + +{{EmbedInteractiveExample("pages/js/atomics-or.html")}} + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +## 構文 + +<pre class="syntaxbox notranslate">Atomics.and(typedArray, index, value) +</pre> + +### 引数 + +- typedArray + <dd>整数の型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}}, {{jsxref("BigInt64Array")}}, {{jsxref("BigUint64Array")}} の何れかです。</dd> +- index + <dd>typedArray でビット単位の OR を計算する位置です。</dd> +- value + <dd>ビット単位の OR を取る数値です。</dd> + +### 返値 + +指定された位置にあった古い値です (typedArray[index])。 + +### 例外 + +- typedArray が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。 + +<h2 id="Description" name="Description">解説</h2> + +ビット単位の OR 操作は、 a と b のどちらかが 1 であった場合に 1 を生成します。 OR 操作の真理値表を示します。 + +<table class="standard-table"> + <thead> + <tr> + <th>a</th> + <th>b</th> + <th>a | b</th> + </tr> + </thead> + <tbody> + <tr> + <td>0</td> + <td>0</td> + <td>0</td> + </tr> + <tr> + <td>0</td> + <td>1</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>0</td> + <td>1</td> + </tr> + <tr> + <td>1</td> + <td>1</td> + <td>1</td> + </tr> + </tbody> +</table> + +例えば、ビット単位の OR を 5 | 1 で行うと、結果は 0101 すなわち10進数で5となります。 + +<pre class="notranslate">5 0101 +1 0001 + ---- +5 0101 +</pre> + +## 例 + +<h3 id="Using_or" name="Using_or">or の使用</h3> + +<pre class="brush: js notranslate">const sab = new SharedArrayBuffer(1024); +const ta = new Uint8Array(sab); +ta[0] = 2; + +Atomics.or(ta, 0, 1); // returns 2, the old value +Atomics.load(ta, 0); // 3</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.or', 'Atomics.or')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.or")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.and()")}} +- {{jsxref("Atomics.xor()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/store/index.html b/files/ja/web/javascript/reference/global_objects/atomics/store/index.html deleted file mode 100644 index 862fc94381..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/store/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Atomics.store() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/store -tags: - - Atomics - - JavaScript - - Method - - Shared Memory - - メソッド - - 共有メモリ -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/store ---- -<div>{{JSRef}}</div> - -<p>静的な <code><strong>Atomics</strong></code><strong><code>.store()</code></strong> メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。</p> - -<div>{{EmbedInteractiveExample("pages/js/atomics-store.html")}}</div> - -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Atomics.store(<var>typedArray</var>, <var>index</var>, <var>value</var>) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> - <dt><code><var>index</var></code></dt> - <dd><code><var>typedArray</var></code> で <code><var>value</var></code> を格納する位置。</dd> - <dt><code><var>value</var></code></dt> - <dd>格納する値。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>格納された値です。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。</li> - <li><code><var>typedArray</var></code> が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_store" name="Using_store">store() の使用</h3> - -<pre class="brush: js">var sab = new SharedArrayBuffer(1024); -var ta = new Uint8Array(sab); - -Atomics.store(ta, 0, 12); // 12</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.store', 'Atomics.store')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.store")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.load()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/store/index.md b/files/ja/web/javascript/reference/global_objects/atomics/store/index.md new file mode 100644 index 0000000000..8c316d09be --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/store/index.md @@ -0,0 +1,76 @@ +--- +title: Atomics.store() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/store +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー + - メソッド + - 共有メモリ +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/store +--- +{{JSRef}} + +静的な <strong>Atomics</strong><strong>.store()</strong> メソッドは、指定された値を配列内の指定した位置に格納し、その値を返します。 + +{{EmbedInteractiveExample("pages/js/atomics-store.html")}} + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +## 構文 + +<pre class="syntaxbox">Atomics.store(typedArray, index, value) +</pre> + +### 引数 + +- typedArray + <dd>共有整数型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}} の何れかです。</dd> +- index + <dd>typedArray で value を格納する位置。</dd> +- value + <dd>格納する値。</dd> + +### 返値 + +格納された値です。 + +### 例外 + +- typedArray が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。 +- typedArray が共有型付き配列型ではない場合、 {{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。 + +## 例 + +<h3 id="Using_store" name="Using_store">store() の使用</h3> + +<pre class="brush: js">var sab = new SharedArrayBuffer(1024); +var ta = new Uint8Array(sab); + +Atomics.store(ta, 0, 12); // 12</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.store', 'Atomics.store')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.store")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.load()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/sub/index.html b/files/ja/web/javascript/reference/global_objects/atomics/sub/index.html deleted file mode 100644 index b356a4f5f9..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/sub/index.html +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Atomics.sub() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/sub -tags: - - Atomics - - JavaScript - - Method - - Shared Memory -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/sub ---- -<div>{{JSRef}}</div> - -<p>静的な <strong><code>Atomics.sub()</code></strong> メソッドは、配列内の指定した位置の値から減算して、その場所にあった古い値を返します。この atomic 操作は、修正された値が書き戻されるまで、ほかの書き込みが発生しないことを保証します。</p> - -<div>{{EmbedInteractiveExample("pages/js/atomics-sub.html")}}</div> - -<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox notranslate">Atomics.sub(<var>typedArray</var>, <var>index</var>, <var>value</var>) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>整数の型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}}, {{jsxref("BigInt64Array")}}, {{jsxref("BigUint64Array")}} のいずれかです。</dd> - <dt><code><var>index</var></code></dt> - <dd><code><var>typedArray</var></code> で <code><var>value</var></code> を減算する位置です。</dd> - <dt><code><var>value</var></code></dt> - <dd>減算する数値です。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>指定された位置にあった古い値です (<code><var>typedArray</var>[<var>index</var>]</code>)。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_sub" name="Using_sub">sub の使用</h3> - -<pre class="brush: js notranslate">const sab = new SharedArrayBuffer(1024); -const ta = new Uint8Array(sab); -ta[0] = 48; - -Atomics.sub(ta, 0, 12); // returns 48, the old value -Atomics.load(ta, 0); // 36 -</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.sub', 'Atomics.sub')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.sub")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.add()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/sub/index.md b/files/ja/web/javascript/reference/global_objects/atomics/sub/index.md new file mode 100644 index 0000000000..ea43e8ee5c --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/sub/index.md @@ -0,0 +1,76 @@ +--- +title: Atomics.sub() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/sub +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/sub +--- +{{JSRef}} + +静的な <strong>Atomics.sub()</strong> メソッドは、配列内の指定した位置の値から減算して、その場所にあった古い値を返します。この atomic 操作は、修正された値が書き戻されるまで、ほかの書き込みが発生しないことを保証します。 + +{{EmbedInteractiveExample("pages/js/atomics-sub.html")}} + +<div class="hidden">このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> をクローンしてプルリクエストを送信してください。</div> + +## 構文 + +<pre class="syntaxbox notranslate">Atomics.sub(typedArray, index, value) +</pre> + +### 引数 + +- typedArray + <dd>整数の型付き配列です。 {{jsxref("Int8Array")}}, {{jsxref("Uint8Array")}}, {{jsxref("Int16Array")}}, {{jsxref("Uint16Array")}}, {{jsxref("Int32Array")}}, {{jsxref("Uint32Array")}}, {{jsxref("BigInt64Array")}}, {{jsxref("BigUint64Array")}} のいずれかです。</dd> +- index + <dd>typedArray で value を減算する位置です。</dd> +- value + <dd>減算する数値です。</dd> + +### 返値 + +指定された位置にあった古い値です (typedArray[index])。 + +### 例外 + +- typedArray が許可された整数型の何れでもない場合、{{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合、 {{jsxref("RangeError")}} が発生します。 + +## 例 + +<h3 id="Using_sub" name="Using_sub">sub の使用</h3> + +<pre class="brush: js notranslate">const sab = new SharedArrayBuffer(1024); +const ta = new Uint8Array(sab); +ta[0] = 48; + +Atomics.sub(ta, 0, 12); // returns 48, the old value +Atomics.load(ta, 0); // 36 +</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.sub', 'Atomics.sub')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.sub")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.add()")}} diff --git a/files/ja/web/javascript/reference/global_objects/atomics/wait/index.html b/files/ja/web/javascript/reference/global_objects/atomics/wait/index.html deleted file mode 100644 index 2f7070b455..0000000000 --- a/files/ja/web/javascript/reference/global_objects/atomics/wait/index.html +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: Atomics.wait() -slug: Web/JavaScript/Reference/Global_Objects/Atomics/wait -tags: - - Atomics - - JavaScript - - Method - - Shared Memory - - メソッド - - 共有メモリ -translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/wait ---- -<div>{{JSRef}}</div> - -<p><code><strong>Atomics</strong></code><strong><code>.wait()</code></strong> は静的なメソッドで、 {{jsxref("Int32Array")}} 中の指定された位置に指定された値が保存されているかどうかを検証し、検証できるまでスリープ、もしくはタイムアウトします。返値は "<code>ok</code>", "<code>not-equal</code>", "<code>timed-out</code>" のいずれかです。</p> - -<div class="note"> -<p><strong>注:</strong> この操作は共有された {{jsxref("Int32Array")}} に対してのみ可能で、またメインスレッドでは実行できません。</p> -</div> - -<h2 id="Syntax" name="Syntax">構文</h2> - -<pre class="syntaxbox">Atomics.wait(<var>typedArray</var>, <var>index</var>, <var>value</var>[, <var>timeout</var>]) -</pre> - -<h3 id="Parameters" name="Parameters">引数</h3> - -<dl> - <dt><code><var>typedArray</var></code></dt> - <dd>共有された {{jsxref("Int32Array")}}。</dd> - <dt><code><var>index</var></code></dt> - <dd>待つ対象となる <code><var>typedArray</var></code> の中の位置。</dd> - <dt><code><var>value</var></code></dt> - <dd>期待される値。</dd> - <dt><code><var>timeout</var></code> {{optional_inline}}</dt> - <dd>ミリ秒で表した待ち時間。時間が指定されなかった場合は {{jsxref("Infinity")}}。</dd> -</dl> - -<h3 id="Return_value" name="Return_value">返値</h3> - -<p>{{jsxref("String")}} で、 "<code>ok</code>", "<code>not-equal</code>", or "<code>timed-out</code>" のいずれか。</p> - -<h3 id="Exceptions" name="Exceptions">例外</h3> - -<ul> - <li><code><var>typedArray</var></code> が共有された {{jsxref("Int32Array")}} でない場合、 {{jsxref("TypeError")}} が発生します。</li> - <li><code><var>index</var></code> が <code><var>typedArray</var></code> の範囲を超えている場合は {{jsxref("RangeError")}} が発生します。</li> -</ul> - -<h2 id="Examples" name="Examples">例</h2> - -<h3 id="Using_wait" name="Using_wait">wait() の使用</h3> - -<p>次のような共有 <code>Int32Array</code> があったとします。</p> - -<pre class="brush: js">const sab = new SharedArrayBuffer(1024); -const int32 = new Int32Array(sab); -</pre> - -<p>読み手のスレッドはスリープし、 0 番目の値が 0 であることを期待して待ちます。これが成立している間、処理は進みません。しかし、書き手のスレッドが新しい値を格納した場合、書き手のスレッドによって通知され、新しい値 (123) が返ります。</p> - -<pre class="brush: js">Atomics.wait(int32, 0, 0); -console.log(int32[0]); // 123</pre> - -<p>書き手のスレッドは新しい値を格納し、待っているスレッドに書き込みが完了したことを知らせます。</p> - -<pre class="brush: js">console.log(int32[0]); // 0; -Atomics.store(int32, 0, 123); -Atomics.notify(int32, 0, 1);</pre> - -<h2 id="Specifications" name="Specifications">仕様書</h2> - -<table class="standard-table"> - <thead> - <tr> - <th scope="col">仕様書</th> - </tr> - </thead> - <tbody> - <tr> - <td>{{SpecName('ESDraft', '#sec-atomics.wait', 'Atomics.wait')}}</td> - </tr> - </tbody> -</table> - -<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> - -<p>{{Compat("javascript.builtins.Atomics.wait")}}</p> - -<h2 id="See_also" name="See_also">関連情報</h2> - -<ul> - <li>{{jsxref("Atomics")}}</li> - <li>{{jsxref("Atomics.notify()")}}</li> -</ul> diff --git a/files/ja/web/javascript/reference/global_objects/atomics/wait/index.md b/files/ja/web/javascript/reference/global_objects/atomics/wait/index.md new file mode 100644 index 0000000000..9eada752b4 --- /dev/null +++ b/files/ja/web/javascript/reference/global_objects/atomics/wait/index.md @@ -0,0 +1,89 @@ +--- +title: Atomics.wait() +slug: Web/JavaScript/Reference/Global_Objects/Atomics/wait +tags: + - Atomics + - JavaScript + - メソッド + - 共有メモリー + - メソッド + - 共有メモリ +translation_of: Web/JavaScript/Reference/Global_Objects/Atomics/wait +--- +{{JSRef}} + +<strong>Atomics</strong><strong>.wait()</strong> は静的なメソッドで、 {{jsxref("Int32Array")}} 中の指定された位置に指定された値が保存されているかどうかを検証し、検証できるまでスリープ、もしくはタイムアウトします。返値は "ok", "not-equal", "timed-out" のいずれかです。 + +<div class="note"> +<strong>注:</strong> この操作は共有された {{jsxref("Int32Array")}} に対してのみ可能で、またメインスレッドでは実行できません。 +</div> + +## 構文 + +<pre class="syntaxbox">Atomics.wait(typedArray, index, value[, timeout]) +</pre> + +### 引数 + +- typedArray + <dd>共有された {{jsxref("Int32Array")}}。</dd> +- index + <dd>待つ対象となる typedArray の中の位置。</dd> +- value + <dd>期待される値。</dd> +- timeout {{optional_inline}} + <dd>ミリ秒で表した待ち時間。時間が指定されなかった場合は {{jsxref("Infinity")}}。</dd> + +### 返値 + +{{jsxref("String")}} で、 "ok", "not-equal", or "timed-out" のいずれか。 + +### 例外 + +- typedArray が共有された {{jsxref("Int32Array")}} でない場合、 {{jsxref("TypeError")}} が発生します。 +- index が typedArray の範囲を超えている場合は {{jsxref("RangeError")}} が発生します。 + +## 例 + +<h3 id="Using_wait" name="Using_wait">wait() の使用</h3> + +次のような共有 Int32Array があったとします。 + +<pre class="brush: js">const sab = new SharedArrayBuffer(1024); +const int32 = new Int32Array(sab); +</pre> + +読み手のスレッドはスリープし、 0 番目の値が 0 であることを期待して待ちます。これが成立している間、処理は進みません。しかし、書き手のスレッドが新しい値を格納した場合、書き手のスレッドによって通知され、新しい値 (123) が返ります。 + +<pre class="brush: js">Atomics.wait(int32, 0, 0); +console.log(int32[0]); // 123</pre> + +書き手のスレッドは新しい値を格納し、待っているスレッドに書き込みが完了したことを知らせます。 + +<pre class="brush: js">console.log(int32[0]); // 0; +Atomics.store(int32, 0, 123); +Atomics.notify(int32, 0, 1);</pre> + +<h2 id="Specifications" name="Specifications">仕様書</h2> + +<table class="standard-table"> + <thead> + <tr> + <th scope="col">仕様書</th> + </tr> + </thead> + <tbody> + <tr> + <td>{{SpecName('ESDraft', '#sec-atomics.wait', 'Atomics.wait')}}</td> + </tr> + </tbody> +</table> + +<h2 id="Browser_compatibility" name="Browser_compatibility">ブラウザーの互換性</h2> + +{{Compat("javascript.builtins.Atomics.wait")}} + +<h2 id="See_also" name="See_also">関連情報</h2> + +- {{jsxref("Atomics")}} +- {{jsxref("Atomics.notify()")}} |