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");
}
}