最佳線程數
在使用多線程的時候要注意幾個點,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) {