เราสามารถรีสตาร์ทเธรดใน Java ได้หรือไม่?
เราสามารถรีสตาร์ทเธรดใน Java ได้หรือไม่?

วีดีโอ: เราสามารถรีสตาร์ทเธรดใน Java ได้หรือไม่?

วีดีโอ: เราสามารถรีสตาร์ทเธรดใน Java ได้หรือไม่?
วีดีโอ: Can we restart a dead thread in Java? 2024, อาจ
Anonim

ตั้งแต่ ด้าย can ไม่ รีสตาร์ทคุณ มี ถึง สร้างใหม่ เกลียว ทุกเวลา. แนวทางปฏิบัติที่ดีกว่าคือ ถึง แยกรหัส ถึง วิ่งใน เกลียว จาก เกลียว วงจรชีวิตของโดยใช้อินเทอร์เฟซ Runnable เพียงแยกวิธีการรันในคลาสที่ใช้ Runnable แล้ว คุณสามารถ อย่างง่ายดาย เริ่มต้นใหม่ มัน.

นอกจากนี้ เราจะเริ่มและหยุดเธรดได้อย่างไร

ในเวอร์ชัน Java วันนี้ คุณสามารถ หยุดกระทู้ โดยใช้ตัวแปรระเหยแบบบูลีน ถ้าคุณจำได้, กระทู้ ในชวา เริ่ม การดำเนินการจากเมธอด run() และ หยุด เมื่อมันออกมาจากเมธอด run() ปกติหรือเนื่องมาจากข้อยกเว้น คุณสามารถใช้ประโยชน์จากคุณสมบัตินี้เพื่อ หยุด NS เกลียว.

ด้ายตายคืออะไร? NS เกลียว เป็นที่ยอมรับว่า ตาย เมื่อเมธอด run() ดำเนินการเสร็จสิ้น เมื่อ เกลียว เสร็จสิ้นวิธีการ run() และ ตาย , ไม่สามารถนำกลับมาได้ เกลียว ของการดำเนินการหรือแม้กระทั่งในสถานะที่รันได้ เรียกใช้เมธอด start() บน a ด้ายตาย ทำให้เกิดข้อยกเว้นรันไทม์

ในทำนองเดียวกันอาจมีคนถามว่าคุณจะรีสตาร์ทโปรแกรม Java ได้อย่างไร

พูดอย่างเคร่งครัด a โปรแกรมจาวา ไม่ได้ เริ่มต้นใหม่ ตัวมันเองตั้งแต่นั้นมา มันจะต้องฆ่า JVM ที่มันทำงานอยู่ แล้วเริ่มต้นใหม่อีกครั้ง แต่เมื่อ JVM ไม่ทำงานอีกต่อไป (ถูกฆ่า) จะไม่สามารถดำเนินการใดๆ ได้

คุณจะฆ่าเธรดใน Java ได้อย่างไร

ไม่มีทางสวยได้ ฆ่า NS เกลียว . โดยทั่วไปคุณไม่ ฆ่า , หยุด หรือ ขัดจังหวะ a เกลียว (หรือตรวจสอบว่าถูกขัดจังหวะหรือไม่ ()) แต่ปล่อยให้มัน ยุติ อย่างเป็นธรรมชาติ มันเป็นเรื่องง่าย คุณสามารถใช้ลูปใดก็ได้ร่วมกับตัวแปรบูลีน (ระเหย) ภายในวิธี run() เพื่อควบคุม ด้าย กิจกรรม.

แนะนำ: