Atomics - Kurzanleitung

Atomics

Atomics ist ein Objekt in JavaScript, das atomare Operationen bereitstellt, die als statische Methoden ausgeführt werden können. Genau wie die Methoden des Math-Objekts sind auch die Methoden und Eigenschaften von Atomics statisch. Atomics werden mit SharedArrayBuffer-Objekten verwendet.

Die Atomic-Operationen werden auf einem Atomics-Modul installiert. Im Gegensatz zu anderen globalen Objekten ist Atomics kein Konstruktor. Atomics kann nicht mit einem neuen Operator verwendet oder als Funktion aufgerufen werden.

Atomoperationen

Atomoperationen sind unterbrechungsfrei.

Wenn der Speicher gemeinsam genutzt wird, können mehrere Threads vorhandene Daten im Speicher lesen oder schreiben. Wenn also Daten geändert werden, gehen Daten verloren. Atomic-Operationen stellen sicher, dass die vorhergesagten Werte (Daten) genau geschrieben und gelesen werden. Atomische Operationen werden erst gestartet, wenn die aktuelle Operation beendet ist. Daher gibt es keine Möglichkeit, vorhandene Daten zu ändern.

Beispiel

Im Folgenden finden Sie den Code, der die Verwendung von JavaScript Atomics Operation demonstriert.

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.add(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            container.innerHTML = Atomics.add(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

Atomics

Atomics ist ein Objekt in JavaScript, das atomare Operationen bereitstellt, die als statische Methoden ausgeführt werden können. Genau wie die Methoden des Math-Objekts sind auch die Methoden und Eigenschaften von Atomics statisch. Atomics werden mit SharedArrayBuffer-Objekten verwendet.

Die Atomic-Operationen werden auf einem Atomics-Modul installiert. Im Gegensatz zu anderen globalen Objekten ist Atomics kein Konstruktor. Atomics kann nicht mit einem neuen Operator verwendet oder als Funktion aufgerufen werden.

Atomoperationen

Atomoperationen sind unterbrechungsfrei.

Wenn der Speicher gemeinsam genutzt wird, können mehrere Threads vorhandene Daten im Speicher lesen oder schreiben. Wenn also Daten geändert werden, gehen Daten verloren. Atomic-Operationen stellen sicher, dass die vorhergesagten Werte (Daten) genau geschrieben und gelesen werden. Atomische Operationen werden erst gestartet, wenn die aktuelle Operation beendet ist. Daher gibt es keine Möglichkeit, vorhandene Daten zu ändern.

Beispiel

Im Folgenden finden Sie den Code, der die Verwendung von JavaScript Atomics Operation demonstriert.

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.add(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            container.innerHTML = Atomics.add(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

addMethode fügt einen bereitgestellten Wert an einer bestimmten Position im Array hinzu. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.add(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • value hinzugefügt werden.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.add(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            container.innerHTML = Atomics.add(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

andDie Methode berechnet das bitweise UND mit einem angegebenen Wert an einer bestimmten Position im Array. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.and(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • value mit welchem ​​bitweisen UND berechnet werden soll.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.and(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            //6 & 2 = 110 & 010 = 010 = 2
            container.innerHTML = Atomics.and(arr, 0, 2) + '<br/>'+ Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

compareExchangeDie Methode vergleicht einen Austauschwert und tauscht ihn aus, wenn der angegebene Wert nicht mit dem alten Wert übereinstimmt. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.compareExchange(typedArray, index, expectedValue, replacementValue)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • expectedValue auf Gleichheit prüfen.

  • replacementValue wechseln.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.compareExchange(arr, 0, 6, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            container.innerHTML = Atomics.compareExchange(arr, 0, 6, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

exchangeDie Methode tauscht einen bestimmten Wert an einer bestimmten Position eines Arrays aus. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.exchange(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • value wechseln.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.exchange(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            container.innerHTML = Atomics.exchange(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

isLockFreeDie Methode wird verwendet, um zu bestimmen, ob Sperren für atomare Operationen verwendet werden sollen oder nicht. Wenn die angegebene Größe eine der TypedArray.BYTES_PER_ELEMENT-Eigenschaften von ganzzahligen TypedArray-Typen ist, wird true zurückgegeben. TypedArray.BYTES_PER_ELEMENT repräsentiert die Größe jedes Elements eines typisierten Arrays in Byte.

Syntax

Atomics.isLockFree(size)

Parameter

  • size in Bytes geprüft werden.

Rückkehr

Gibt true zurück, wenn die Operation als false gesperrt ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.isLockFree(1)</p>
      <p>Atomics.isLockFree(3)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            // Int8Array.BYTES_PER_ELEMENT = 1
            container.innerHTML = Atomics.isLockFree(Int8Array.BYTES_PER_ELEMENT) + '<br/>' + Atomics.isLockFree(3);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

load Methode gibt einen Wert an einer bestimmten Position im Array zurück.

Syntax

Atomics.load(typedArray, index)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

Rückkehr

Gibt den Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.add(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            container.innerHTML = Atomics.add(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

notifyMethode benachrichtigt den wartenden Agenten, um aufzuwachen. Die Benachrichtigungsmethode kann nur mit Int32Array verwendet werden, das mit SharedArrayBuffer erstellt wurde. Es wird 0 zurückgegeben, wenn ein nicht gemeinsam genutztes ArrayBuffer-Objekt verwendet wird.

Syntax

Atomics.notify(typedArray, index, count)

Parameter

  • typedArray ist ein gemeinsam genutztes Int32Array.

  • index ist die Position in typedarray zum Aufwachen.

  • count ist die Anzahl der zu benachrichtigenden Schlafmittel.

Rückkehr

Gibt die Anzahl der aufgeweckten Agenten zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.store(arr, 0, 5)</p>
      <p>Atomics.notify(arr, 0, 1)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(16);
            var arr = new Int32Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;            
            container.innerHTML = Atomics.store(arr, 0, 5) + '<br>' + Atomics.notify(arr, 0, 1);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

orDie Methode berechnet das bitweise ODER mit einem angegebenen Wert an einer bestimmten Position im Array. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.or(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • value mit welchem ​​bitweisen ODER berechnet werden soll.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.or(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            //6 | 2 = 110 | 010 = 110 = 6
            container.innerHTML = Atomics.or(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

storeDie Methode speichert einen Wert an der angegebenen Stelle in einem Array und gibt denselben zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.store(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray, an der der Wert gespeichert werden soll.

  • value zu speichernden.

Rückkehr

Gibt den an der angegebenen Position gespeicherten Wert zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.store(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;           
            container.innerHTML = Atomics.store(arr, 0, 2) + '<br/>'
            + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

subDie Methode subtrahiert einen bereitgestellten Wert an einer bestimmten Position im Array. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.sub(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • value abgezogen werden.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.sub(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            //6 - 2 = 4
            container.innerHTML = Atomics.sub(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.

xorDie Methode berechnet das bitweise XOR mit einem angegebenen Wert an einer bestimmten Position im Array. Es gibt den alten Wert an dieser Position zurück. Diese atomare Operation stellt sicher, dass kein weiterer Schreibvorgang ausgeführt werden kann, bis der geänderte Wert zurückgeschrieben wird.

Syntax

Atomics.xor(typedArray, index, value)

Parameter

  • typedArray ist das ganzzahlige Array.

  • index ist die Position in typedarray.

  • value mit welchem ​​bitweisen XOR berechnet werden soll.

Rückkehr

Gibt den alten Wert an der angegebenen Position zurück.

Ausnahmen

  • TypeError Für den Fall, dass das übergebene Array kein ganzzahliges Array ist.

  • RangeError Wenn der übergebene Index in einem typisierten Array nicht gebunden ist.

Beispiel

Im Folgenden finden Sie den Code zum Implementieren von JavaScript Atomics:

<!DOCTYPE html>
<html lang="en">
   <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>Atomics Example</title>
      <style>
         .result {
            font-size: 20px;
            border: 1px solid black;
         }
      </style>
   </head>
   <body onLoad="operate();">
      <h1>JavaScript Atomics Properties</h1>
      <div class="result"></div>
      <p>Atomics.xor(arr, 0, 2)</p>
      <p>Atomics.load(arr, 0)</p>
      <script>
         function operate(){
            let container = document.querySelector(".result");
            // create a SharedArrayBuffer
            var buffer = new SharedArrayBuffer(25);
            var arr = new Uint8Array(buffer);
            // Initialise element at zeroth position of array with 6
            arr[0] = 6;
            //6 xor 2 = 110 xor 010 = 100 = 4
            container.innerHTML = Atomics.xor(arr, 0, 2) + '<br/>' + Atomics.load(arr, 0);
         }
      </script>
   </body>
</html>

Ausgabe

Überprüfen Sie das Ergebnis.