Java線程池:ExecutorService,Executors,

來源:互聯網
上載者:User

Java線程池:ExecutorService,Executors,

簡單的Java線程池可以從Executors.newFixedThreadPool( int n)獲得。此方法返回一個線程容量為n的線程池。然後ExecutorService的execute執行之。

現給出一個樣本。

package zhangphil.executorservice;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class ZhangPhilExecutorService {// 為了容易理解線程池的概念,假設容量只有2的線程池。// 實際使用過程中當然可以更多!private final int NUMBER = 2;public ZhangPhilExecutorService() {// 建立容量為2的線程池。ExecutorService pool = Executors.newFixedThreadPool(NUMBER);for (int i = 0; i < 10; i++) {Thread t = new TestThread(i);System.out.println("線程池執行線程id:" + i);pool.execute(t);}// 關閉線程池。pool.shutdown();}private class TestThread extends Thread {private int id;public TestThread(int id) {this.id = id;}@Overridepublic void run() {System.out.println("線程:" + id + " -> 運行...");try {Thread.sleep(5000);} catch (Exception e) {e.printStackTrace();}System.out.println("線程:" + id + " -> 結束!");}}public static void main(String[] args) {new ZhangPhilExecutorService();}}


啟動並執行輸出結果:

線程池執行線程id:0線程池執行線程id:1線程池執行線程id:2線程池執行線程id:3線程:0 -> 運行...線程池執行線程id:4線程:1 -> 運行...線程池執行線程id:5線程池執行線程id:6線程池執行線程id:7線程池執行線程id:8線程池執行線程id:9線程:1 -> 結束!線程:0 -> 結束!線程:2 -> 運行...線程:3 -> 運行...線程:3 -> 結束!線程:2 -> 結束!線程:4 -> 運行...線程:5 -> 運行...線程:4 -> 結束!線程:5 -> 結束!線程:6 -> 運行...線程:7 -> 運行...線程:7 -> 結束!線程:6 -> 結束!線程:8 -> 運行...線程:9 -> 運行...線程:9 -> 結束!線程:8 -> 結束!




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.