เพิ่มรหัสก่อน
สร้างเธรดใหม่รหัสมีดังนี้:
แพ็คเกจ com.thread.test; คลาสสาธารณะ MyThread ขยายเธรด {ชื่อสตริงส่วนตัว; Public Mythread (ชื่อสตริง) {this.name = name; } @Override โมฆะสาธารณะเรียกใช้ () {สำหรับ (int i = 0; i <100; i ++) {system.out.println (ชื่อ+"["+i+"]"); } super.run (); -จากนั้นสร้างคลาสทดสอบใหม่รหัสมีดังนี้:
แพ็คเกจ com.thread.test;/** 0-50 ดำเนินการเธรดหลัก 50-100 ดำเนินการเธรด A และเธรดหลักจะดำเนินการต่อไปหลังจากที่เธรด A ถูกดำเนินการอย่างสมบูรณ์*/คลาสสาธารณะ ThreadDemo {โมฆะสาธารณะคงที่หลัก (สตริง [] args) T.Start (); สำหรับ (int i = 0; i <100; i ++) {ถ้า (i> 50) {ลอง {t.join (); } catch (interruptedException e) {e.printStackTrace (); }} system.out.println ("เธรดหลัก"+"["+i+"]"); -ต่อไปนี้เป็นคำอธิบายของวิธีการเข้าร่วมในเธรดในแพลตฟอร์ม Java SE8 API:
การเข้าร่วมเป็นโมฆะครั้งสุดท้ายของสาธารณะ (Long Millis) พ่น InterruptedExceptionWaits ที่ Millis Millions Millions Millisonds มากที่สุดสำหรับกระทู้นี้จะตาย การหมดเวลา 0 หมายถึงการรอตลอดไป การใช้งานนี้ใช้การวนซ้ำของการโทรที่มีเงื่อนไขบนนี้ ในฐานะที่เป็นเธรดจะยกเลิกวิธีนี้ Notifyall จะถูกเรียกใช้ ขอแนะนำให้แอปพลิเคชันไม่ใช้รอแจ้งหรือแจ้งให้ทราบเกี่ยวกับอินสแตนซ์เธรดพารามิเตอร์: มิลลิส - เวลาที่จะรอเป็นล้านวินาทีโยน: unglegalargumentException - หากค่าของมิลลิสเป็นลบ interruptedException - หากเธรดใด ๆ ได้ขัดจังหวะเธรดปัจจุบัน สถานะขัดจังหวะของเธรดปัจจุบันจะถูกล้างเมื่อมีการโยนข้อยกเว้นนี้
เพิ่มรหัสก่อน
สร้างเธรดใหม่รหัสมีดังนี้:
แพ็คเกจ com.thread.test; คลาสสาธารณะ MyThread ขยายเธรด {ชื่อสตริงส่วนตัว; Public Mythread (ชื่อสตริง) {this.name = name; } @Override โมฆะสาธารณะเรียกใช้ () {สำหรับ (int i = 0; i <100; i ++) {system.out.println (ชื่อ+"["+i+"]"); } super.run (); -จากนั้นสร้างคลาสทดสอบใหม่รหัสมีดังนี้:
แพ็คเกจ com.thread.test;/** 0-50 ดำเนินการเธรดหลัก 50-100 ดำเนินการเธรด A และเธรดหลักจะดำเนินการต่อไปหลังจากที่เธรด A ถูกดำเนินการอย่างสมบูรณ์*/คลาสสาธารณะ ThreadDemo {โมฆะสาธารณะคงที่หลัก (สตริง [] args) T.Start (); สำหรับ (int i = 0; i <100; i ++) {ถ้า (i> 50) {ลอง {t.join (); } catch (interruptedException e) {e.printStackTrace (); }} system.out.println ("เธรดหลัก"+"["+i+"]"); -ต่อไปนี้เป็นคำอธิบายของวิธีการเข้าร่วมในเธรดในแพลตฟอร์ม Java SE8 API:
การเข้าร่วมเป็นโมฆะครั้งสุดท้ายของสาธารณะ (Long Millis) พ่น InterruptedExceptionWaits ที่ Millis Millions Millions Millisonds มากที่สุดสำหรับกระทู้นี้จะตาย การหมดเวลา 0 หมายถึงการรอตลอดไป การใช้งานนี้ใช้การวนซ้ำของการโทรที่มีเงื่อนไขบนนี้ ในฐานะที่เป็นเธรดจะยกเลิกวิธีนี้ Notifyall จะถูกเรียกใช้ ขอแนะนำให้แอปพลิเคชันไม่ใช้รอแจ้งหรือแจ้งให้ทราบเกี่ยวกับอินสแตนซ์เธรดพารามิเตอร์: มิลลิส - เวลาที่จะรอเป็นล้านวินาทีโยน: unglegalargumentException - หากค่าของมิลลิสเป็นลบ interruptedException - หากเธรดใด ๆ ได้ขัดจังหวะเธรดปัจจุบัน สถานะขัดจังหวะของเธรดปัจจุบันจะถูกล้างเมื่อมีการโยนข้อยกเว้นนี้
ความเข้าใจของฉันเองคือมันจะเข้าสู่เธรดโดยใช้วิธีการเข้าร่วมและเธรดอื่น ๆ จะรอจนกว่าเธรดจะถูกดำเนินการอย่างสมบูรณ์ก่อนที่จะเข้ามา