ในบทความก่อนหน้านี้ฉันแนะนำวิธีการใช้งานของ Java Multi-Threading
ก่อนอื่นให้ฉันบอกข้อดีและข้อเสียของมัลติเธรดให้คุณฟัง
ข้อดีของมัลติเธรด:
1) การใช้ทรัพยากรที่ดีขึ้น
2) การเขียนโปรแกรมง่ายกว่าในบางกรณี
3) โปรแกรมตอบสนองเร็วขึ้น
ค่าใช้จ่ายของมัลติเธรด:
1) การออกแบบที่ซับซ้อนมากขึ้น
ในขณะที่แอปพลิเคชันแบบมัลติเธรดบางตัวนั้นง่ายกว่าแอปพลิเคชันแบบเธรดเดี่ยว แต่โดยทั่วไปแล้วจะมีความซับซ้อนมากขึ้น ส่วนหนึ่งของรหัสนี้ต้องการความสนใจเป็นพิเศษเมื่อเข้าถึงข้อมูลที่ใช้ร่วมกันผ่านหลายเธรด ปฏิสัมพันธ์ระหว่างเธรดมักจะซับซ้อนมาก ข้อผิดพลาดที่เกิดจากการซิงโครไนซ์เธรดที่ไม่ถูกต้องนั้นยากมากที่จะตรวจจับและทำซ้ำเพื่อแก้ไข
2) ค่าใช้จ่ายของการสลับบริบท
เมื่อ CPU สลับจากการดำเนินการหนึ่งเธรดหนึ่งเพื่อเรียกใช้เธรดอื่นมันจะต้องจัดเก็บข้อมูลท้องถิ่นของเธรดปัจจุบันตัวชี้โปรแกรม ฯลฯ จากนั้นโหลดข้อมูลท้องถิ่นของเธรดอื่นตัวชี้โปรแกรม ฯลฯ และในที่สุดก็เริ่ม การดำเนินการ การสลับนี้เรียกว่า "สวิตช์บริบท" CPU ดำเนินการเธรดในบริบทหนึ่งจากนั้นสลับไปยังบริบทอื่นเพื่อดำเนินการเธรดอื่น การสลับบริบทไม่ถูก หากไม่จำเป็นควรลดการสลับบริบท
มีสองเทคโนโลยีสำคัญสำหรับการกำหนดและเริ่มเธรด:
ครั้งแรก: คลาสเธรดจะต้องใช้อินเตอร์เฟส java.lang.runnable หรือสืบทอดคลาส java.lang.Thread และทั้งคู่จะต้องใช้วิธีการเรียกใช้ซึ่งวิธีการเรียกใช้ไม่มีอินพุตไม่มีเอาต์พุตและไม่มีข้อยกเว้น
ประการที่สอง: เรียกใช้วิธีการเริ่มต้นของคลาสเธรดเพื่อเริ่มเธรด
การทดสอบแพ็คเกจ; นำเข้า java.util.vector; นำเข้า java.util.date;/*** อินสแตนซ์ทดสอบเธรด* @author ยังคงไหล**/คลาสสาธารณะ Threadnew {/**** @author ยังคงไหลของน้ำ**************************************** / ชั้นเรียนขยายเธรด {วันที่ส่วนตัวรันไทม์; ); วันที่ (); */โมฆะสาธารณะ startb () {runnable threadb = new Threadb (); [] args) {threadnew test = new ThreadNew ();