Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Thread Class และ Runnable Interface ใน Java

Thread (Class)

  • เป็น Class
  • มีหลายเมธอด: start(), run(), ฯลฯ
  • ใช้หน่วยความจำมากกว่า (สร้าง Object ใหม่แต่ละ Thread)
  • extends Thread → ไม่สามารถ extends Class อื่นได้ (Java ไม่รองรับ Multiple Inheritance)
  • แต่ละ Thread มี Object ของตัวเอง

Runnable (Functional Interface)

  • เป็น Functional Interface (มี abstract method เดียว: run())
  • ใช้หน่วยความจำน้อยกว่า
  • implements Runnable → ยัง extends Class อื่นได้
  • หลาย Thread สามารถ share Runnable object เดียวกันได้
  • แนะนำให้ใช้ Runnable มากกว่า (ยืดหยุ่นกว่า)

สรุป

คุณสมบัติThread ClassRunnable Interface
ประเภทClassFunctional Interface
Abstract Methodหลายตัวrun() เดียว
Memoryมากกว่าน้อยกว่า
Extends อื่นได้?ไม่ได้ได้
Share Objectไม่ได้ (แต่ละ Thread object แยก)ได้ (หลาย Thread ใช้ Runnable เดียวกัน)