java - Thread.currentThread().getId() 和 Kernel32.INSTANCE.GetCurrentThreadId() 之间的区别

标签 java multithreading

下面两行获取线程ID的代码有什么区别?

Thread.currentThread().getId();
Kernel32.INSTANCE.GetCurrentThreadId();

最佳答案

为了抽象底层平台,jvm 位于操作系统之上。 W32API 是由 java 实现的操作系统接口(interface)/库,Kernel32.INSTANCE.GetCurrentThreadId() 给出调用该行的操作系统线程的 ID。 Java语言提供了多线程机制。 Thread.currentThread().getId() 为您提供 jvm 线程的 id。 根据 W32API 的实现(Kernel32 是其中之一)以及操作系统线程可能会也可能不会映射到 vm 线程的其他一些因素。

关于java - Thread.currentThread().getId() 和 Kernel32.INSTANCE.GetCurrentThreadId() 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37428872/

相关文章:

java - 为什么在多线程环境中用虚拟记录填充数组列表要花费双倍的时间?

c++ - Boost 线程检查当前线程是否等于另一个 native 句柄

c++ - 安全线程终止

java.lang.RuntimeException : Failed construction of Master: class org. apache.hadoop.hbase.master.HMaster

java - CXFServlet 抛出 java.lang.NoSuchMethodError : org. codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;

java - 将 SQLite 数据库转换为 Java Arraylist

java - 创建包含不同类型对象的哈希集

java - 在内部类中找不到类型符号

java - 无法在 JavaFX WebView 中登录 Google

java - 即使有线程,gui 也会挂起