多線程如何確定線程數


最佳線程數

在使用多線程的時候要注意幾個點,1.執行這個處理的時間多長,2.執行這類任務的消息有多頻繁

我一般的處理,

1.如果執行是時間過長但任務很少,我會只用一個線程(這里是無限循環,直到你的進程退出),而且最好在線程池里面直接開一個出來,不要單獨去new一個線程實例,好處的話就去看下線程池跟單個線程的知識;

2.如果是執行時間短,這里就忽略掉任務的多與少,直接每次都從線程池里取一個線程來執行,因為執行時間段很快就會釋放資源,這樣效率很高;

3.如果執行時間長而且任務量大,那就創建線程數組,個數上我一般使用當前服務器cpu的核數的2倍,這樣不會太占用資源,這種單獨new出來的線程,再不使用或者關閉的時候要特別注意回收

 

try {
            threadPool = Executors.newFixedThreadPool(Constants.THREAD_SIZE);
            CountDownLatch countDownLatch = new CountDownLatch(Constants.SIZE);

            for (int i = 0; i < Constants.THREAD_SIZE; i++) {
                threadPool.execute(new Worker(countDownLatch));
            }

            countDownLatch.await();
        } catch (Exception e) {

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM