第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

空閑固定線程池的缺點(diǎn)

空閑固定線程池的缺點(diǎn)

函數(shù)式編程 2023-04-19 16:36:01
我目前正在對(duì)軟件進(jìn)行各種性能改進(jìn)。因?yàn)樗褂?SWT 作為它的 GUI,所以我遇到了一個(gè)問題,在某些情況下,在顯示線程中創(chuàng)建了很多 UI 元素。由于我之前的人并沒有真正注意在顯示線程之外進(jìn)行任何計(jì)算,因此整個(gè)軟件在啟動(dòng)時(shí)可能會(huì)無響應(yīng)幾秒鐘。我現(xiàn)在已經(jīng)隔離了需要在 Display Thread 中執(zhí)行的代碼,現(xiàn)在我正在計(jì)算 Runnables 中提交給固定 Threadpool 的所有其他內(nèi)容。我正在像這樣使用游泳池:public abstract class AbstractChartComposite {private static ExecutorService pool = Executors.newFixedThreadPool(8);private List<String> currentlyProcessingChartItems = new ArrayList<>();protected void doCalculate(constraints){for (IMERuntimeConstraint c : constraints) {    if(!currentlyProcessingChartItems.contains(c.getId())){        currentlyProcessingChartItems.add(c.getId());        pool.submit(new Runnable(){            @Override            public void run() {                try{                  createChartItem(c);                currentlyProcessingChartItems.remove(c.getId());                }catch(Throwable e){                    e.printStackTrace();                }            }        });    }  }}}我現(xiàn)在想知道,一旦創(chuàng)建了所有 UI 元素,讓線程池閑置運(yùn)行是否有任何缺點(diǎn)。我不能真正關(guān)閉它以進(jìn)行垃圾回收,因?yàn)楫?dāng)需要?jiǎng)?chuàng)建新元素時(shí),用戶輸入將再次需要它。那么在沒有提交的 Runnables 運(yùn)行的情況下留下線程池有什么主要缺點(diǎn)嗎?
查看完整描述

1 回答

?
達(dá)令說

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超6個(gè)贊

不,沒有缺點(diǎn)。

線程不會(huì)真正運(yùn)行,它們將被停放,直到提交新任務(wù)。所以它不影響CPU。你還說你會(huì)再次使用這個(gè)池,所以在你的情況下沒有必要關(guān)閉它并再次重新創(chuàng)建。

至于內(nèi)存 - 是的,空閑線程會(huì)消耗一些內(nèi)存,但這也不是問題,直到你有數(shù)百(數(shù)千?)線程。

另外,一個(gè)建議。不要做過早的優(yōu)化。那是萬惡之源。一旦遇到真正的性能問題,就可以使用特殊實(shí)用程序分析問題并檢測(cè)瓶頸。


查看完整回答
反對(duì) 回復(fù) 2023-04-19
  • 1 回答
  • 0 關(guān)注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)