รองรับภาษาโปรแกรม Java . มันเกี่ยวข้องกับหลายเธรดที่ทำงานพร้อมกันสำหรับการทำงานหลายอย่างพร้อมกัน แต่ในบางกรณีหรือเนื่องจากข้อบกพร่องบางอย่างเธรดพบว่าตัวเองอยู่ในสถานะรอตลอดไป ในบทความนี้เราจะทำความเข้าใจกับสภาวะชะงักงันใน และวิธีต่างๆในการหลีกเลี่ยง ต่อไปนี้เป็นหัวข้อที่กล่าวถึงในบล็อกนี้:
Deadlock ใน Java คืออะไร?
Deadlock ใน Java คือเงื่อนไขที่เธรดตั้งแต่สองเธรดขึ้นไปถูกบล็อกตลอดไปโดยรอกันและกัน
โดยปกติจะเกิดขึ้นเมื่อเธรดหลายเธรดต้องการการล็อกเดียวกัน แต่ได้รับในคำสั่งซื้อที่แตกต่างกัน ใน Java ทนทุกข์ทรมานจากสถานการณ์ชะงักงันเนื่องจากคีย์เวิร์ดที่ซิงโครไนซ์
ทำให้เธรดการดำเนินการบล็อกในขณะที่รอการล็อกหรือมอนิเตอร์ที่เชื่อมโยงกับที่ระบุ วัตถุ .
แปลงเป็นไบนารีใน python
ตัวอย่างการหยุดชะงัก
คลาสสาธารณะตัวอย่าง {public static void main (String [] args) {final String r1 = 'edureka' final String r2 = 'java' Thread t1 = new Thread () {public void run () {synchronized (r1) {System. out.println ('เธรด 1: ล็อก r1') ลองใช้ {Thread.sleep (100)} catch (ข้อยกเว้น e) {} ซิงโครไนซ์ (r2) {System.out.println ('เธรด 1: ล็อค r2')}}} } เธรด t2 = เธรดใหม่ () {การรันโมฆะสาธารณะ () {ซิงโครไนซ์ (r1) {System.out.println ('เธรด 2: ล็อก r1') ลอง {Thread.sleep (100)} จับ (ข้อยกเว้น e) {} ซิงโครไนซ์ (r2) {System.out.println ('เธรด 2: ล็อก r2')}}}} t1.start () t2.start ()}}
เอาท์พุต: เธรด 1: ล็อค r1 เธรด 2: ล็อค r2
วิธีหลีกเลี่ยง Deadlock ใน Java
แม้ว่าจะไม่สามารถหลีกเลี่ยงภาวะชะงักงันได้อย่างสมบูรณ์ แต่เราสามารถปฏิบัติตามมาตรการหรือคำแนะนำบางอย่างเพื่อหลีกเลี่ยง:
บางส่วนของโปรแกรม java
หลีกเลี่ยงการล็อกแบบซ้อนกัน - คุณต้องหลีกเลี่ยงการล็อกหลายเธรดซึ่งเป็นสาเหตุหลักที่ทำให้เกิดภาวะชะงักงัน โดยปกติจะเกิดขึ้นเมื่อคุณล็อกหลายเธรด
หลีกเลี่ยงการล็อคที่ไม่จำเป็น - ควรล็อคให้กับเธรดที่สำคัญ การล็อกเธรดที่ไม่จำเป็นซึ่งทำให้เกิดสภาวะชะงักงัน
ใช้การเข้าร่วมเธรด - การหยุดชะงักมักเกิดขึ้นเมื่อเธรดหนึ่งกำลังรอให้อีกเธรดเสร็จสิ้น ในกรณีนี้เราสามารถใช้ Thread.join กับเวลาสูงสุดที่เธรดจะใช้
สิ่งนี้ทำให้เรามาถึงตอนท้ายของบทความนี้ซึ่งเราได้เรียนรู้เกี่ยวกับการหยุดชะงักใน Java และวิธีหลีกเลี่ยง ฉันหวังว่าคุณจะเข้าใจทุกสิ่งที่แบ่งปันกับคุณในบทแนะนำนี้
หากคุณพบบทความเกี่ยวกับ“ Deadlock In Java” ที่เกี่ยวข้องโปรดดูที่ไฟล์ บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้พร้อมเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก
ข้อมูลที่เป็นนามธรรมใน c ++
เราพร้อมช่วยเหลือคุณในทุกขั้นตอนในการเดินทางและจัดทำหลักสูตรที่ออกแบบมาสำหรับนักเรียนและผู้เชี่ยวชาญที่ต้องการเป็น Java Developer หลักสูตรนี้ออกแบบมาเพื่อให้คุณเริ่มต้นการเขียนโปรแกรม Java และฝึกอบรมแนวคิด Java ทั้งหลักและขั้นสูงพร้อมกับแนวคิดต่างๆ ชอบ ไฮเบอร์เนต & .
หากคุณพบคำถามใด ๆ อย่าลังเลที่จะถามคำถามทั้งหมดของคุณในส่วนความคิดเห็นของ“ Deadlock In Java” และทีมงานของเรายินดีที่จะตอบ