เธรดสัญญาณปลอดภัยหรือไม่

สารบัญ:

เธรดสัญญาณปลอดภัยหรือไม่
เธรดสัญญาณปลอดภัยหรือไม่
Anonim

Semaphores มีเธรดที่ปลอดภัย ตามที่อธิบายใน javadoc: เอฟเฟกต์ความสอดคล้องของหน่วยความจำ: การดำเนินการในชุดข้อความก่อนที่จะเรียกเมธอด "ปล่อย" เช่น การปล่อยจะเกิดขึ้นก่อนดำเนินการตาม วิธีการ "รับ" ที่ประสบความสำเร็จเช่นได้รับในเธรดอื่น การดำเนินการส่วนใหญ่กับอ็อบเจ็กต์ใน java

สัญญาณป้องกันการแข่งขันหรือไม่

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

ใช้เธรดปลอดภัยหรือไม่

A MessageService object จะเปลี่ยนแปลงได้อย่างมีประสิทธิภาพเนื่องจากสถานะไม่สามารถเปลี่ยนแปลงได้หลังการก่อสร้าง ดังนั้นจึงปลอดภัยต่อเธรด นอกจากนี้ หาก MessageService สามารถเปลี่ยนแปลงได้จริง แต่หลายเธรดมีการเข้าถึงแบบอ่านอย่างเดียวเท่านั้น มันก็ปลอดภัยสำหรับเธรดเช่นกัน

เธรดปลอดภัยและซิงโครไนซ์หรือไม่

Thread safe หมายถึง: วิธีการจะปลอดภัยที่จะเข้าถึงได้หลายเธรดโดยไม่มีปัญหาใดๆ ในเวลาเดียวกัน คีย์เวิร์ดที่ซิงโครไนซ์ เป็นวิธีหนึ่งในการบรรลุ 'ความปลอดภัยของเธรด' แต่อย่าลืมว่าจริงๆ แล้วในขณะที่หลายเธรดพยายามเข้าถึงวิธีการซิงโครไนซ์ พวกมันจะทำตามลำดับ ดังนั้นจะปลอดภัยในการเข้าถึง

สัญญาณมีความยุติธรรมหรือไม่

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