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

ความแตกต่างระหว่าง Executor และ ExecutorServices ใน Java


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