gpt4 book ai didi

java - 当有多个处理器时,Thread.currentThread() 是如何工作的?

转载 作者:搜寻专家 更新时间:2023-11-01 04:07:39 30 4
gpt4 key购买 nike

Thread.currentThread() 可用于获取当前正在执行的线程。而且我认为 sleep 和 yield 方法都是静态的,因为它们不能在其他线程上执行 sleep 或 yield 。因此,通过将它们设为静态,它将 hibernate 或仅产生当前正在执行的线程。

这似乎在单处理器系统中工作,如果我调用Thread.currentThread() 或 sleep ,则只有当前正在运行的线程,它会返回或 sleep 。但是在多核系统中,可以同时运行多个线程,

那么 Thread.currentThread()Thread.sleep() 是如何工作的...?

最佳答案

Thread.currentThread() 方法返回我们当前正在运行的线程。这只是一种表达方式:“嘿,给我一个运行我的线程的引用”

假设我们有四核四线程A,B,C,D绝对并发运行,同时调用这个方法,它会根据我们当前所在的线程适当的返回A,B,C,D .

方法 Thread.currentThread().sleep()Thread.sleep() 基本上做同样的工作。根据 documentation对于 currentThread():

public static Thread currentThread()

Returns a reference to the currently executing thread object.

public static void sleep(long millis)throws InterruptedException

Causes the currently executing thread to sleep (temporarily cease execution) for the specified number of milliseconds, subject to the precision and accuracy of system timers and schedulers. The thread does not lose ownership of any monitors.

关于java - 当有多个处理器时,Thread.currentThread() 是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30024560/

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