如果在多处理器或多处理器计算机上运行,而jvm可能绝对同时运行多个线程(不只是同时出现),那么api方法java.lang.Thread.currentThread()返回什么?…在上述情况下,它是否会返回当前线程之一是随机的吗?
java.lang.Thread.currentThread()
它返回您当前正在其中运行的线程。如果你有两个核心和两个线程A和B完全并行运行,要求在同一时间这个方法,它将返回A和B适当的。
A
B
您的理解是正确的-此方法返回的线程始终处于运行状态-因为必须从某个线程调用该线程,并且要返回该线程必须正在运行。不要以“ 所有当前正在运行的,非暂停的,非阻塞的线程 ”的方式来考虑该方法。相反,它的含义是:“ 给我一个运行我的线程的引用 ”。