在java中,在java中添加多个线程来完成一项任务是否有助于更快地执行该任务?
目前我的程序中使用了主线程,但速度很慢。我目前的测量结果是每秒 500 个进程,但进程总数超过了 10 亿。如何让我的程序运行得更快?
在java中,在java中添加多个线程来完成一项任务是否有助于更快地执行该任务?
目前我的程序中使用了主线程,但速度很慢。我目前的测量结果是每秒 500 个进程,但进程总数超过了 10 亿。如何让我的程序运行得更快?
在java中,在java中添加多个线程来完成一项任务是否有助于更快地执行该任务?
这完全取决于你在做什么。如果您在独立的数据片段上执行任务,在检索或存储结果方面没有瓶颈,并且假设您在一台具有多个处理器的机器上,那么是的,使用更多线程可能会有所帮助。
但是,有多种方法是无济于事的:
在其中一些情况下,线程可以提供帮助,但不如它只是受 CPU 限制并且您有大量备用内核那么重要。你需要弄清楚你当前的瓶颈在哪里。
请注意,在最好的情况下,您只会获得与您拥有的核心数量成比例的加速。因此,如果你有 16 个核心(不太可能但可行)和完美的并行化,那么如果一个核心每秒可以处理 500 个项目并且你有 10 亿个项目,那么处理所有内容仍然需要将近 35 个小时。
几乎可以肯定的一件事是,您的多线程代码将比单线程代码更复杂。尝试使用高级抽象(例如 injava.util.concurrent
而不是低级抽象(例如java.lang.Thread
)以使事情变得更简单。