Executor และ ExecutorServices ทั้งสองอินเทอร์เฟซเป็นส่วนหนึ่งของกรอบงานของ Executor เปิดตัวพร้อมกับ Java 5
ใน java การสร้างเธรดเป็นการดำเนินการที่มีราคาแพงมาก ดังนั้นเราควรนำเธรดที่มีอยู่มาใช้ใหม่ แทนที่จะเริ่มเธรดใหม่ทุกครั้ง และเราสามารถบรรลุสิ่งเดียวกันได้โดยใช้กรอบงานของ Executor
กรอบงานของตัวดำเนินการใช้เธรดพูลเพื่อดำเนินงานแบบคู่ขนาน ซึ่งช่วยปรับเวลาตอบสนองและการใช้ทรัพยากรให้เหมาะสม มันมีพูลเธรดในตัวสี่ประเภท -
- รวมเธรดแบบคงที่
- แคชเธรดพูล
- พูลเธรดที่กำหนดเวลาไว้
- ตัวดำเนินการเธรดเดียว
ซีเนียร์ เลขที่ | คีย์ | ผู้บริหาร | ExecutorServices |
---|---|---|---|
1 | พื้นฐาน | มันเป็นอินเทอร์เฟซหลัก | ขยายส่วนต่อประสานผู้ปฏิบัติการ |
2 | วิธีการ | มันมีวิธีดำเนินการ () | มี send() method |
3 | ประเภทการคืนสินค้า | มันไม่คืนค่าอะไรเลย | ส่งกลับวัตถุในอนาคต |
4. | รันได้ /Callable | ยอมรับวัตถุที่เรียกใช้ได้ | รับทั้ง runnable และ callable |
ตัวอย่าง ExecutorService
public class Main { public static void main(String args[]) { ExecutorService services = Executors.newSingleThreadExecutor(); Future<?> future = services.submit(new Task()); } } public class Task implements Runnable { @Override public void run() { System.out.println("In Run"); } }
ตัวอย่างผู้ดำเนินการ
public class Main { public static void main(String args[]) { Executor executor = Executors.newSingleThreadExecutor(); executor.execute(new Task()); } } public class Task implements Runnable { @Override public void run() { System.out.println("In Run"); } }