วิธีการจัดตารางเวลาเธรด Java คือ: 1. การกำหนดเวลาเธรดที่ทำงานร่วมกัน ระบบแบบมัลติเธรดใช้การกำหนดเวลาการทำงานร่วมกัน และเวลาดำเนินการของเธรดจะถูกควบคุมโดยเธรดเอง 2. การกำหนดเวลาเธรดล่วงหน้า การใช้ระบบมัลติเธรดการกำหนดเวลาล่วงหน้า ระบบจะจัดสรรเวลาดำเนินการของแต่ละเธรด
สภาพแวดล้อมการทำงานของบทช่วยสอนนี้: ระบบ Windows 7, เวอร์ชัน Java 10, คอมพิวเตอร์ DELL G3
1. การตั้งเวลาเธรดแบบร่วมมือ
ระบบแบบมัลติเธรดใช้การตั้งเวลาแบบร่วมมือ เวลาดำเนินการของเธรดจะถูกควบคุมโดยเธรดเอง หลังจากที่เธรดทำงานเสร็จสิ้น ระบบจะแจ้งเตือนระบบให้สลับไปใช้เธรดอื่น ข้อดีของการใช้มัลติเธรดแบบร่วมมือคือง่ายต่อการนำไปใช้ เนื่องจากเธรดจะสลับเธรดหลังจากเสร็จสิ้นงานของตัวเอง การดำเนินการสลับเป็นที่รู้จักในเธรดเอง ดังนั้นโดยทั่วไปจะไม่มีปัญหาการซิงโครไนซ์เธรด ข้อบกพร่องของมันก็ชัดเจนเช่นกัน: ไม่สามารถควบคุมเวลาดำเนินการของเธรดได้ และหากรหัสของเธรดถูกเขียนไม่ถูกต้อง และระบบไม่ได้รับอนุญาตให้สลับเธรด โปรแกรมจะบล็อกเสมอ
2. การตั้งเวลาเธรดล่วงหน้า
การใช้ระบบมัลติเธรดที่มีการกำหนดเวลาล่วงหน้า เวลาดำเนินการของแต่ละเธรดจะถูกจัดสรรโดยระบบ และการสลับเธรดไม่ได้ถูกกำหนดโดยตัวกระบวนการเอง ตัวอย่างเช่น ใน Java มีเมธอด Thread::yield() ที่สามารถสละเวลาดำเนินการได้ แต่ถ้าคุณต้องการได้รับเวลาดำเนินการ เธรดนั้นไม่มีทางเป็นไปได้ ด้วยวิธีนี้ การจัดตารางเวลาเธรดจะถูกนำไปใช้ และเวลาดำเนินการของเธรดจะถูกควบคุมโดยระบบ ไม่มีปัญหาที่เธรดเดียวจะทำให้กระบวนการทั้งหมดหรือแม้แต่ทั้งระบบถูกบล็อก
ข้างต้นเป็นสองวิธีในการตั้งเวลาเธรด Java ฉันหวังว่ามันจะ เป็นประโยชน์กับทุกคน