gpt4 book ai didi

Java 多线程优先级

转载 作者:行者123 更新时间:2023-12-01 17:01:10 24 4
gpt4 key购买 nike

如果您正在运行具有相同优先级的多个线程,为什么不需要在任何线程中调用yield 或sleep 方法?我一定是误解了线程的工作原理。我假设如果两个线程具有相同的优先级,则在单核系统上,一个线程将在另一个线程启动之前完成。也就是说,除非您调用控制函数之一,即。)yield() sleep() join() ... 等

任何了解该主题的人,如果您能为我提供任何说明,我将不胜感激。

StackOverFlow 不允许我在您的答案中添加评论:

另外根据我的书:“JVM 总是选择当前可运行的具有最高优先级的线程。只有当没有更高优先级的线程运行时,较低优先级的线程才能运行。”

最佳答案

why do you not need to call the yield or sleep method in any of the threads?

调度是预先完成的。您不需要调用yield或sleep或wait或调用操作系统的阻塞操作来挂起您的线程。

I was under the assumption that if two threads are of the same priority, one will finish before the other is started on a single core system.

即使一个线程具有最高优先级,一个线程具有最低优先级,也不意味着一个线程会先于另一个线程完成。

unless you call one of the control functions ie.) yield() sleep() join()

调用这些方法可以放弃 CPU,但这并不意味着操作系统不会怀疑线程,因为这些方法没有被调用。注意:它们不必这样做。

关于Java 多线程优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27571608/

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