thread.stop, thread.suspend, thread.resume และ runtime.runfinalizersonexit วิธีการเหล่านี้ในการยกเลิกเธรดถูกยกเลิกและมันไม่ปลอดภัยอย่างยิ่งที่จะใช้มัน!
1. เธรดถูกดำเนินการตามปกติและสิ้นสุดตามปกติ
นั่นคือปล่อยให้วิธีการเรียกใช้งานและเธรดจะสิ้นสุดตามปกติ
แต่บางครั้งเธรดไม่สามารถจบลงได้เช่นในขณะที่ (จริง)
2. ตรวจสอบเงื่อนไขบางอย่างและสิ้นสุดการทำงานของเธรดอย่างต่อเนื่อง
ในขณะที่ () ลูปจำเป็นต้องออกภายใต้เงื่อนไขที่แน่นอน วิธีที่ตรงที่สุดคือการตั้งค่าธงบูลีนและตั้งค่าสถานะนี้เพื่อควบคุมว่าลูปออกหรือไม่
Public Class ThreadFlag ขยายเธรด {Public Volatile Boolean Exit = False; โมฆะสาธารณะเรียกใช้ () {ในขณะที่ (! ออก) {system.out.println ("วิ่ง!"); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นข้อยกเว้น {เธรดเธรด = new ThreadFlag (); thread.start (); นอนหลับ (1147); // เธรดหลักล่าช้าโดย 5 วินาทีเธรด exit = true; // ยกเลิกเธรดเธรดเธรด join (); System.out.println ("ออกจากเธรด!"); -3. ใช้วิธีการขัดจังหวะเพื่อยุติเธรด
หากเธรดถูกบล็อกวิธีที่ 2 ไม่สามารถใช้เพื่อยุติเธรดได้
ThreadInterm ของคลาสสาธารณะขยายเธรด {public void run () {ลอง {sleep (50000); // ล่าช้า 50 วินาที} จับ (interruptedException e) {system.out.println (e.getMessage ()); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่นข้อยกเว้น {เธรดเธรด = new ThreadInrupt (); thread.start (); System.out.println ("กดปุ่มใด ๆ ภายใน 50 วินาทีเพื่อขัดจังหวะเธรด!"); System.in.read (); thread.interrupt (); thread.oin (); System.out.println ("เธรดออกไปแล้ว!"); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น