การใช้ ThreadLocal คืออะไร?
การใช้ ThreadLocal คืออะไร?

วีดีโอ: การใช้ ThreadLocal คืออะไร?

วีดีโอ: การใช้ ThreadLocal คืออะไร?
วีดีโอ: Thread-local storage 2024, เมษายน
Anonim

Java ThreadLocal ใช้เพื่อสร้างตัวแปรท้องถิ่นของเธรด เรารู้ว่าเธรดทั้งหมดของ Object นั้นใช้ตัวแปรร่วมกัน ดังนั้นตัวแปรจึงไม่ปลอดภัยสำหรับเธรด เราสามารถใช้การซิงโครไนซ์เพื่อความปลอดภัยของเธรด แต่ถ้าเราต้องการหลีกเลี่ยงการซิงโครไนซ์ เราสามารถใช้ตัวแปร ThreadLocal ได้

คลาส ThreadLocal ใช้ทำอะไร

Java ThreadLocal class จัดเตรียมให้ เธรดท้องถิ่น ตัวแปร ช่วยให้คุณสร้างตัวแปรที่สามารถอ่านและเขียนได้จากเธรดเดียวกันเท่านั้น หากสองเธรดกำลังรันโค้ดเดียวกันและโค้ดนั้นมีการอ้างอิงถึงa ThreadLocal ตัวแปรทั้งสองเธรดจะไม่เห็นตัวแปรท้องถิ่นของกันและกัน

ด้านบนนี้ เหตุใด ThreadLocal จึงเป็นแบบคงที่และเป็นขั้นตอนสุดท้าย อย่างที่เราเห็น คงที่ ตัวอย่างของ ThreadLocal ใช้เป็นคีย์ค้นหาเท่านั้น ค่าของมันไม่สามารถเปลี่ยนแปลงได้เนื่องจากมีการประกาศ สุดท้าย . NS ThreadLocal อินสแตนซ์นั้นปลอดภัยสำหรับเธรดทั้งหมด เนื่องจากเป็นแบบอ่านอย่างเดียวจริงๆ ดังนั้นการซิงโครไนซ์จึงไม่มีความจำเป็น สิ่งที่อาจไม่ปลอดภัยสำหรับเธรดคือ Object เป้าหมาย

ในทำนองเดียวกัน คุณอาจถามว่า ThreadLocal ทำงานอย่างไรใน Java

NS Java ThreadLocal คลาสช่วยให้คุณสามารถสร้างตัวแปรที่สามารถอ่านและเขียนโดยเธรดเดียวกันเท่านั้น ดังนั้น แม้ว่าสองเธรดกำลังรันโค้ดเดียวกัน และโค้ดนั้นมีการอ้างอิงถึงตัวเดียวกัน กระทู้ท้องถิ่น ตัวแปรทั้งสองเธรดไม่สามารถเห็นกันของ ThreadLocal ตัวแปร

เหตุใด ThreadLocal จึงคงที่

ในระยะสั้น กระทู้ท้องถิ่น วัตถุทำงานเหมือนแผนที่คีย์-ค่า คงที่ สุดท้าย กระทู้ท้องถิ่น ตัวแปรนั้นปลอดภัยสำหรับเธรด คงที่ ทำให้ ThreadLocal ตัวแปรที่มีอยู่ในหลายคลาสสำหรับเธรดที่เกี่ยวข้องเท่านั้น มันเป็นชนิดของ decaration ตัวแปรทั่วโลกของตามลำดับ ด้ายท้องถิ่น ตัวแปรข้ามหลายคลาส

แนะนำ: