อะตอม
อะตอม เป็นอ็อบเจ็กต์ใน JavaScript ที่ให้การดำเนินการอะตอมมิกที่จะดำเนินการเป็นเมธอดแบบคงที่ เช่นเดียวกับวิธีการของ คณิตศาสตร์ วัตถุ วิธีการ และคุณสมบัติของ อะตอม ยังเป็นแบบคงที่ อะตอม ใช้กับ SharedArrayBuffer วัตถุ
อะตอม การดำเนินการได้รับการติดตั้งใน Atomics Module . ไม่เหมือนกับวัตถุระดับโลกอื่น ๆ อะตอม ไม่ใช่ คอนสตรัคเตอร์ . อะตอม ไม่สามารถใช้กับโอเปอเรเตอร์ใหม่ หรือจะเรียกเป็นฟังก์ชันก็ได้
การทำงานของอะตอม
อะตอม การดำเนินงานไม่ ต่อเนื่อง . เมื่อมีการแชร์หน่วยความจำ เธรดหลายเธรดสามารถอ่านหรือเขียนข้อมูลที่มีอยู่ในหน่วยความจำได้ ดังนั้นหากมีการเปลี่ยนแปลงข้อมูลใด ๆ ก็จะสูญเสียข้อมูล Atomic การดำเนินการตรวจสอบให้แน่ใจว่าค่าที่คาดการณ์ (ข้อมูล) ถูกเขียนและอ่านอย่างถูกต้อง การทำงานของอะตอมมิกจะไม่เริ่มต้นจนกว่าและเว้นแต่การดำเนินการปัจจุบันจะเสร็จสิ้น ดังนั้นจึงไม่มีทางเปลี่ยนแปลงข้อมูลที่มีอยู่ได้
ตอนนี้ เรามาพูดถึงAutomics วิธีการ
Atomics.add()
Atomics.Add() ใช้เพื่อเพิ่มค่าที่กำหนดในตำแหน่งที่กำหนดในอาร์เรย์และส่งกลับค่าเดิมที่ตำแหน่งนั้น เนื่องจากไม่อนุญาตให้มีการหยุดชะงัก จึงไม่มีฟังก์ชันการเขียนอื่นเกิดขึ้นจนกว่าค่าที่แก้ไขจะถูกส่งคืน
ไวยากรณ์
Atomics.add(typedArray, index, value)
พารามิเตอร์
typedArray
เป็นจำนวนเต็มอาร์เรย์ที่ใช้ร่วมกันที่เราจะแก้ไข
ดัชนี
ดัชนีในอาร์เรย์ที่เราจะเพิ่มค่าใหม่
ค่า
ไม่มีอะไรนอกจากตัวเลขที่เราจะเพิ่ม
ค่าที่ส่งคืน
Atomics.add() ส่งคืนค่าเก่าในตำแหน่งที่กำหนด (typedArray[index])
ตัวอย่าง
<html>
<body>
<script type="text/javascript">
// creating a SharedArrayBuffer
var buffer = new SharedArrayBuffer(25);
var arr = new Uint8Array(buffer);
// Initialising element at zeroth position of array with 6
arr[0] = 6;
// Displaying the return value of the Atomics.add() method
document.write(Atomics.add(arr, 0, 2));
document.write("</br>");
// Displaying the updated SharedArrayBuffer
document.write(Atomics.load(arr, 0));
</script>
</body>
</html> ผลลัพธ์
6 8