gpt4 book ai didi

java - 如何有效地进行多线程

转载 作者:行者123 更新时间:2023-12-01 12:22:45 25 4
gpt4 key购买 nike

我正在编写一个异步程序,我有两个选择:

A) 在一个核心上运行线程并失去并行处理优势

B)在不同的内核上运行线程,并且存在潜在的延迟问题(内核必须相互通信)

什么是更好的选择?我是否最好不要担心它并让操作系统来决定,或者我可以通过使用上面的选项来获得更多性能?

最佳答案

A) 如果您有阻塞操作,则不一定会失去并行性。不过,您确实说了“异步”,所以您可能不会阻塞。当一个线程阻塞时,线程调度程序将调度其他线程运行。

B)这一切都毫无意义; Java 没有线程亲和性,所以你甚至没有选择。操作系统可以选择它使用的内核。线程之间通信时的延迟很低——最多 100 纳秒。这实际上只是线程之间频繁通信的问题。

听起来您真正想知道的是您是否仍然可以从具有异步操作的多个线程中看到性能优势。是的,你可以。

综上所述,您应该阅读有关并发模式和 Java 的更多内容。如果 A 或 B 的实现不正确,性能可能会很糟糕,因此如果您想避免主要问题,则需要深入了解正在发生的情况。 Java 并发实践对于此类内容来说是一本很好的读物。

关于java - 如何有效地进行多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26554991/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com