มีสองวิธีในการสร้างเธรดการดำเนินการใหม่ หนึ่งคือการประกาศคลาสเป็นคลาสย่อยของคลาสเธรด คลาสย่อยนี้ควรแทนที่วิธีการรันของคลาสเธรด จากนั้นจะสามารถจัดสรรและเริ่มต้นอินสแตนซ์ของคลาสย่อยได้
อีกวิธีหนึ่งในการสร้างเธรดคือการประกาศคลาสที่ใช้อินเทอร์เฟซ Runnable คลาสนั้นใช้เมธอดรัน อินสแตนซ์ของคลาสสามารถจัดสรร ส่งผ่านเป็นอาร์กิวเมนต์เมื่อสร้างเธรด และเริ่มต้นได้
ทุกเธรดมีชื่อเพื่อวัตถุประสงค์ในการระบุตัวตน มากกว่าหนึ่งเธรดอาจมีชื่อเหมือนกัน หากไม่มีการระบุชื่อเมื่อสร้างเธรด ชื่อใหม่จะถูกสร้างขึ้น
ซีเนียร์ เลขที่ | คีย์ | กระทู้ | รันได้ |
---|---|---|---|
1 | พื้นฐาน | เธรดเป็นคลาส ใช้สำหรับสร้างเธรด | Runnable เป็นอินเทอร์เฟซที่ใช้งานได้ซึ่งใช้ในการสร้างเธรด |
2 | วิธีการ | มีหลายวิธีรวมทั้ง start() และ run() | มีเฉพาะวิธีการรัน () |
3 | แต่ละเธรดสร้างอ็อบเจ็กต์ที่ไม่ซ้ำกันและเชื่อมโยงกับมัน | หลายเธรดใช้วัตถุเดียวกันร่วมกัน | |
4 | หน่วยความจำ | ต้องการหน่วยความจำเพิ่มเติม | ต้องใช้หน่วยความจำน้อยลง |
5 | ข้อจำกัด | ไม่อนุญาตให้ใช้การสืบทอดหลายรายการใน java ดังนั้นหลังจากที่คลาสขยายคลาสของเธรด ก็ไม่สามารถขยายคลาสอื่นได้ | หากคลาสกำลังใช้งานอินเทอร์เฟซที่รันได้ คลาสของคุณสามารถขยายคลาสอื่นได้ |
ตัวอย่างของ Runnable
class RunnableExample implements Runnable{ public void run(){ System.out.println("Thread is running for Runnable Implementation"); } public static void main(String args[]){ RunnableExample runnable=new RunnableExample(); Thread t1 =new Thread(runnable); t1.start(); } }
ตัวอย่างกระทู้
class ThreadExample extends Thread{ public void run(){ System.out.println("Thread is running"); } public static void main(String args[]){ ThreadExample t1=new ThreadExample (); t1.start(); } }