บทความนี้ส่วนใหญ่ศึกษาการใช้วิธีการเข้าร่วมใน Java multithreading บทความต่อไปนี้เป็นตัวอย่างที่เฉพาะเจาะจง
วิธีที่ไม่คงที่ของเธรดเข้าร่วม () อนุญาตให้หนึ่งเธรด B เพื่อ "เข้าร่วม" กับหางของเธรดอื่น A. B ไม่สามารถทำงานได้จนกว่า A จะดำเนินการเสร็จสิ้น ตัวอย่างเช่น:
เธรด t = ใหม่ mythread ();
T.Start ();
T.Join ();
นอกจากนี้วิธี join() ยังมีเวอร์ชันโอเวอร์โหลดพร้อมขีด จำกัด การหมดเวลา ตัวอย่างเช่น t.join(5000); ให้เธรดรอ 5,000 มิลลิวินาที หากเวลานี้เกินเวลานี้มันจะหยุดรอและกลายเป็นสถานะที่วิ่งได้
ผลลัพธ์ของการเข้าร่วมเธรด join() บนสแต็กเธรดคือการเปลี่ยนแปลงของสแต็กเธรดและแน่นอนว่าการเปลี่ยนแปลงเหล่านี้เกิดขึ้นทันที
Public Class Testjoin {โมฆะคงที่สาธารณะหลัก (สตริง [] args) {mythread2 t1 = ใหม่ mythread2 ("testjoin"); t1.start (); ลอง {t1.join (); // เข้าร่วม () ผสานเธรด หลังจากที่เธรดลูกทำงานแล้วเธรดหลักจะเริ่มดำเนินการ} catch (interruptedException e) {} สำหรับ (int i = 0; i <10; i ++) system.out.println ("ฉันเป็นเธรดหลัก");}} คลาส Mythread2 ขยายเธรด {mythread2 {system.out.println ("ฉัน"+getName ()); ลอง {sleep (1,000); // หยุดชั่วคราว, เอาต์พุตทุกครั้งที่วินาที} จับ (interruptedException e) {return;}}}}}}}}โปรแกรมการรันผลลัพธ์:
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันทดสอบ
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ฉันเป็นกระทู้หลัก
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับรหัสตัวอย่างของวิธีการเข้าร่วม Java multithreaded และฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!