สารบัญ:
คำจำกัดความ - อะตอมหมายถึงอะไร
Atomic เป็นชุดเครื่องมือของคลาสแพ็คเกจ java.util.concurrent.atomic ซึ่งช่วยในการเขียนอัลกอริทึมการล็อคและไม่ต้องรอด้วยภาษาจาวา อัลกอริทึมที่ต้องการเฉพาะเธรดบางส่วนสำหรับความคืบหน้าคงที่ไม่มีล็อค ในอัลกอริทึมที่ไม่มีการรอเธรดทั้งหมดจะดำเนินการต่อเนื่องแม้ในกรณีที่เธรดล้มเหลวหรือล่าช้า อัลกอริทึมการล็อคและการรอคอยฟรียังเป็นที่รู้จักกันในนามอัลกอริธึมที่ไม่บล็อก อัลกอริธึมที่ไม่บล็อกถูกใช้สำหรับการจัดตารางกระบวนการและเธรดที่ระดับระบบปฏิบัติการและเครื่องเสมือน Java
Techopedia อธิบายอะตอม
คลาสแพ็กเกจ java.util.concurrent.atomic ทั้งหมดมีส่วนนำหน้า "atomic" ในชื่อ มีตัวแปรอะตอมมิกหลายชนิดที่มีอยู่ในแพ็คเกจ java.util.concurrent.atomic รวมถึง:
- AtomicBoolean
- AtomicInteger
- AtomicIntegerArray
- AtomicIntegerFieldUpdater
- AtomicLong
- AtomicLongArray
- AtomicLongFieldUpdater
- AtomicReference
ตัวอย่างคือสถานการณ์ที่เธรด A เก็บล็อค A สามารถเข้าถึงและทำการเปลี่ยนแปลงตัวแปรที่ได้รับการป้องกันโดยล็อคนี้เท่านั้น หากเธรด B เก็บการล็อคนี้หลังจาก A ดังนั้น B เท่านั้นที่สามารถดูการเปลี่ยนแปลงของ A ในตัวแปรที่ได้รับการป้องกันโดยการล็อกเฉพาะนั้น ปัญหาหลักของการล็อคเกิดขึ้นเมื่อ B พยายามรับการล็อคที่ A เก็บไว้ในกรณีนี้ B จะถูกบล็อคเพื่อรอจนกว่าการล็อคจะพร้อมใช้งาน อัลกอริทึมที่ไม่บล็อกการแก้ไขปัญหานี้
วัตถุประสงค์หลักที่อยู่เบื้องหลังการสร้างคลาสอะตอมมิกคือการใช้โครงสร้างข้อมูลที่ไม่บล็อกและคลาสโครงสร้างพื้นฐานที่เกี่ยวข้อง คลาส Atomic ไม่ได้ทำหน้าที่แทนของ java.lang.Integer และคลาสที่เกี่ยวข้อง java.util.concurrent แพ็คเกจคลาสส่วนใหญ่ใช้ตัวแปรอะตอมมิกแทนการซิงโครไนซ์ไม่ว่าโดยตรงหรือโดยอ้อม ตัวแปรอะตอมมิกยังถูกใช้เพื่อให้ได้ปริมาณงานที่มากขึ้นซึ่งหมายถึงประสิทธิภาพของแอพพลิเคชันเซิร์ฟเวอร์ที่สูงขึ้น