1. 程式人生 > 其它 >java對接paypal支付應用例項 (v2)

java對接paypal支付應用例項 (v2)

一、執行緒池的自我介紹

一個執行緒

package threadpool;

public class EveryTaskOneThread {
    public static void main(String[] args) {
        Thread thread = new Thread(new Task());
        thread.start();
    }

    static class Task implements Runnable {
        @Override
        public void run() {
            System.out.println(
"執行了任務"); } } }

for迴圈建立多個執行緒

package threadpool;

public class ForLoop {
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            Thread thread = new Thread(new Task());
            thread.start();
        }
    }

    static class Task implements
Runnable { @Override public void run() { System.out.println("執行了任務"); } } }

如果不使用執行緒池,每個任務都新開一個執行緒處理,當任務數量上升到1000,這樣開銷太大,我們希望有固定數量的執行緒來執行這1000個執行緒,這樣就避免了反覆建立並銷燬執行緒所帶來的開銷問題。

1、為什麼要使用執行緒池

問題一:反覆建立執行緒開銷大
問題二:過多的執行緒會佔用太多記憶體
解決以上兩個問題的思路
  用少量的執行緒——避免記憶體佔用過多
  讓這部分執行緒都保持工作,且可以反覆執行任務——避免生命週期的損耗

2、執行緒池的好處

加快響應速度
合理利用CPU和記憶體
統一管理

3、執行緒池適合應用的場合

伺服器接收到大量請求時,使用執行緒池技術是非常合適的,它可以大大減少執行緒的建立和銷燬次數,提高伺服器的工作效率。實際上,在開發中,如果需要建立5個以上的執行緒,那麼就可以使用執行緒池來管理

二、建立和停止執行緒池

執行緒池構造方法的引數如下: