获取当前线程ID和进程ID为整数?

Shm*_*opy 6 rust

有没有办法将Rust中的当前进程ID和线程ID作为整数获取?

我得到的最接近的是::std::thread::current().id()返回一个不透明的ThreadId对象.当我试图访问它的u64领域时,我得到:

error[E0611]: field `0` of tuple-struct `std::thread::ThreadId` is private
 --> src\main.rs:4:13
  |
4 |     let x: u64 = ::std::thread::current().id().0;
  |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Run Code Online (Sandbox Code Playgroud)

我在标准库中找不到与进程ID相关的任何内容.

She*_*ter 7

线程id为整数

我不认为ThreadId甚至跟踪这个.所述的实施ThreadId简单地具有与每个线程增加了64位计数器; 它似乎没有对底层操作系统的线程系统做任何事情.

如果您拥有JoinHandle,则可以通过JoinHandleExt::as_pthread_t 其他平台上的等效ID获取.

进程id为整数

这是8天前添加的,仅适用于每晚Rust as pthread_self().

  • [docs](https://doc.rust-lang.org/std/thread/struct.ThreadId.html)也指出*"`ThreadId`s不能保证与线程的系统对应 - 指定标识符"*. (3认同)