有没有办法将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相关的任何内容.
线程id为整数
我不认为ThreadId甚至跟踪这个.所述的实施ThreadId简单地具有与每个线程增加了64位计数器; 它似乎没有对底层操作系统的线程系统做任何事情.
如果您拥有JoinHandle,则可以通过JoinHandleExt::as_pthread_t
其他平台上的等效ID获取.
进程id为整数
这是8天前添加的,仅适用于每晚Rust as pthread_self().