Hướng dẫn php thread pool
Trong bài trước, các bạn đã được học về cách sử dụng Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. 1. ThreadPool là gì?Trong Java, Ví dụ: Khi chúng ta viết chương trình tải các tập tin từ Internet, mỗi tập tin cần 1 Vì vậy, để khắc phục hiện tượng này, Java cho phép chúng ta thay vì phải tạo mới Bài viết này được đăng tại [free tuts .net] Bên trong Ví dụ dưới đây sẽ minh họa cách tạo RunPool.java package vidu; public class RunPool implements Runnable { int id; @Override public void run() { System.out.println("Đang xử lý tiến trình " + id); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Đã xử lý tiến trình " + id); } public RunPool(int id) { this.id = id; } } MyThreadPool.java package vidu; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; public class MyThreadPool { public static void main(String[] args) { ArrayBlockingQueue Kết quả sau khi biên dịch chương trình: Giải thích hoạt động của chương trình trên: Trong dòng code khởi tạo
2. ExecutorServiceKể từ Java 5 trở đi, Ta có thể tạo
Interface Sau đây tôi sẽ đưa ra một ví dụ minh họa cách sử dụng RunPool.java package vidu; public class RunPool implements Runnable { int id; @Override public void run() { System.out.println("Đang xử lý tiến trình " + id); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } System.out.println("Đã xử lý tiến trình " + id); } public RunPool(int id) { this.id = id; } } MyThreadPool.java package vidu; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; public class MyThreadPool { public static void main(String[] args) { ExecutorService pool = Executors.newFixedThreadPool(5); for (int i = 0; i < 10; i++) { pool.submit(new RunPool(i)); // chay ThreadPool, đối số là 1 Runnable } try { // thời gian sống của mỗi Thread là 1 ngày (nếu nó chưa thực thi xong) pool.awaitTermination(1, TimeUnit.DAYS); } catch (InterruptedException e) { e.printStackTrace(); } pool.shutdown(); // tắt ThreadPool } } Kết quả sau khi biên dịch chương trình: Lưu ý: Bạn nên shutdown một 3. Lời kếtTrong bài này, tôi đã hướng dẫn các bạn
tìm hiểu về cách tạo và sử dụng |