java线程多线程
在java中,在java中为一个任务添加多个线程是否有助于更快地执行该任务 目前我的程序中使用了主线程,但速度很慢。我目前的测量值是每秒500个进程,但进程总数超过10亿个。如何使程序运行得更快 在java中,在java中为一个任务添加多个线程是否有助于更快地执行该任务 这完全取决于你在做什么。如果您在独立的数据块上执行任务,在检索或存储结果方面没有瓶颈,并且假设您在一台有多个处理器的机器上,那么是的,使用更多线程可能会有所帮助 然而,它有各种各样的方式无法帮助:java线程多线程,java,multithreading,Java,Multithreading,在java中,在java中为一个任务添加多个线程是否有助于更快地执行该任务 目前我的程序中使用了主线程,但速度很慢。我目前的测量值是每秒500个进程,但进程总数超过10亿个。如何使程序运行得更快 在java中,在java中为一个任务添加多个线程是否有助于更快地执行该任务 这完全取决于你在做什么。如果您在独立的数据块上执行任务,在检索或存储结果方面没有瓶颈,并且假设您在一台有多个处理器的机器上,那么是的,使用更多线程可能会有所帮助 然而,它有各种各样的方式无法帮助: 如果您正在从慢速资源中读取输
- 如果您正在从慢速资源中读取输入数据,您可能正在以尽可能快的速度处理它
- 如果您正在将结果写入速度较慢的资源,那么您可能会尽可能快地处理它
- 如果一个任务依赖于另一个任务的结果,您可能无法获得任何并行化
- 如果您只有一个CPU核心,并且任务已经受到CPU限制,那么添加更多线程将没有帮助
java.util.concurrent
中的抽象),而不是低级抽象(例如java.lang.Thread
),使事情更简单
在java中,在java中为一个任务添加多个线程是否有助于更快地执行该任务
这完全取决于你在做什么。如果你在独立的数据块上执行任务,在检索或存储结果方面没有瓶颈,并且假设你在一台有多个处理器的机器上,那么是的,使用更多的线程可能会有所帮助
然而,它有各种各样的方式无法帮助:
- 如果您正在从慢速资源中读取输入数据,您可能正在以尽可能快的速度处理它
- 如果您正在将结果写入速度较慢的资源,那么您可能会尽可能快地处理它
- 如果一个任务依赖于另一个任务的结果,您可能无法获得任何并行化
- 如果您只有一个CPU核心,并且任务已经受到CPU限制,那么添加更多线程将没有帮助
几乎可以肯定的是,多线程代码比单线程代码更复杂。尝试使用高级抽象(例如
java.util.concurrent
中的抽象,而不是低级抽象(例如java.lang.Thread
)使事情变得更简单。当你做蛋糕时,加上100个人一起做会更快吗?你的主线程在做什么?你需要提供更多关于所做工作的细节。例如,如果你的工作正在读取一个大文件,那么并行化会使事情变得更糟。这取决于你的任务做什么-如果它们主要是CPU如果瓶颈是从一个文件中读取数据,那么添加线程将有所帮助。看看这条经验法则,你会有一个想法:@Adrian Shum:很好的一条..双向工作。我正在处理一个文件,在制作蛋糕时,在文件上读写,添加100个人一起制作会更快吗?你的主线程在做什么g?您需要提供更多关于所完成工作的详细信息。例如,如果您的工作正在读取一个大文件,那么并行化将使情况变得更糟。这取决于您的任务所做的工作—如果它们主要是CPU密集型的,那么添加线程将有所帮助。如果瓶颈是从文件读取数据,则不会。请参阅以下经验法则以了解情况:@Adrian Shum:good一号..双管齐下。我在处理文件,在文件上读写