มีสองวิธีในการสร้างเธรดการดำเนินการใหม่ หนึ่งคือการประกาศคลาสเป็นคลาสย่อยของคลาสเธรด คลาสย่อยนี้ควรแทนที่วิธีการรันของคลาสเธรด จากนั้นจะสามารถจัดสรรและเริ่มต้นอินสแตนซ์ของคลาสย่อยได้
อีกวิธีหนึ่งในการสร้างเธรดคือการประกาศคลาสที่ใช้อินเทอร์เฟซ 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();
}
}