java - Thread.currentThread() 是如何工作的?

标签 java multithreading

Thread.currentThread() 是一个static 方法,它提供对当前正在执行的 Thread 的引用(基本上是对“this”线程的引用)。

在静态方法中访问非静态成员(尤其是 this)在 Java 中是不可能的,所以 currentThread() 是一个本地方法。

currentThread() 方法在幕后是如何工作的?

最佳答案

(basically a reference to 'this' thread)

此处不涉及this引用。

您正在将一个线程混为 native 资源,这意味着执行线程;和 Thread,这是一个 Java 类。线程代码不在 Thread 实例“内部”运行,该实例只是您进入 Java 线程控制的句柄。很像 File 实例不是文件。

因此,Thread.currentThread() 是一种获取 Thread 实例的方法,该实例负责在其中调用该方法的执行线程. Java 究竟如何做到这一点是一个实现细节,除非您正在探索特定 JVM 实现的细节,否则您不应该关心它。

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

相关文章:

java - 如何对同步代码进行单元测试

java - 使用 JPA 和 Spring 加载选定的 Hibernate 实体

asp.net - ASP.NET IIS-请求何时排队?

multithreading - 为什么创建线程比创建进程快?

java - 静态函数中@Value注解的替代方法

java - 线程的 run() 返回后会发生什么?

java - 简单时钟应用程序的准确 Thread.sleep?

c++ - 避免并行递归异步算法中的递归模板实例化溢出

c++ - std::Lock 避免了死锁,但该程序被卡住

java - 为什么无法使用 JPA TopLink 注释连接第三个表?