首页 > 解决方案 > 使用 GUI 元素的线程池中的线程数

问题描述

我有一个关于性能的问题,我有一个有 10 个 GUI 元素的程序,我使用线程池同时运行它们,因为我使用 10 个线程,但我想优化程序,我读过你可以使用您的 PC 拥有的核心数量,它会产生相同的效果,所以我使用了这个:

if(competition.getActiveCompetitors().size()>Runtime.getRuntime().availableProcessors())
                 numberOfThreads=Runtime.getRuntime().availableProcessors();
            else
                numberOfThreads=competition.getActiveCompetitors().size();
            es = Executors.newFixedThreadPool(numberOfThreads); 

Competition.getActiveCompetitors.size() 是 10 个 gui 元素(可能因用户输入而异),我使用 Runtime.getRuntime().availableProcessors() 来确定线程池的数量,例如我有 4 个,所以当我运行了 10 个元素,只运行了 4 个,在他们完成其他 4 个元素之后,有没有办法让整个 10 个元素用 4 个线程运行?或者我在想这一切都错了

标签: javamultithreading

解决方案


推荐阅读