我有一个正在开发的多线程文件转换器。在 Windows 上,它将每个正在转换的文件放在自己的线程中,并始终使用 100% 的 CPU(在所有内核上)。这很棒!在 Ubuntu 上,我在第一个内核上得到 100%,在其余所有内核上得到约 10%。表现很差,令人失望。
我在 SwingWorker 中使用线程,所以我不会冻结 GUI。我在所有线程上使用 thread.join,所以当所有线程都完成时我执行某个任务。我没有更改操作系统之间的代码。有没有可行的方法来解决这个问题?
我有一个正在开发的多线程文件转换器。在 Windows 上,它将每个正在转换的文件放在自己的线程中,并始终使用 100% 的 CPU(在所有内核上)。这很棒!在 Ubuntu 上,我在第一个内核上得到 100%,在其余所有内核上得到约 10%。表现很差,令人失望。
我在 SwingWorker 中使用线程,所以我不会冻结 GUI。我在所有线程上使用 thread.join,所以当所有线程都完成时我执行某个任务。我没有更改操作系统之间的代码。有没有可行的方法来解决这个问题?