pub struct ThreadId(NonZeroU64);
Expand description
A unique identifier for a running thread.
A ThreadId
is an opaque object that uniquely identifies each thread
created during the lifetime of a process. ThreadId
s are guaranteed not to
be reused, even when a thread terminates. ThreadId
s are under the control
of Rust’s standard library and there may not be any relationship between
ThreadId
and the underlying platform’s notion of a thread identifier –
the two concepts cannot, therefore, be used interchangeably. A ThreadId
can be retrieved from the id
method on a Thread
.
Examples
use std::thread;
let other_thread = thread::spawn(|| {
thread::current().id()
});
let other_thread_id = other_thread.join().unwrap();
assert!(thread::current().id() != other_thread_id);
RunTuple Fields§
§0: NonZeroU64
Implementations§
source§impl ThreadId
impl ThreadId
fn new() -> ThreadId
sourcepub fn as_u64(&self) -> NonZeroU64
🔬This is a nightly-only experimental API. (thread_id_value
#67939)
pub fn as_u64(&self) -> NonZeroU64
thread_id_value
#67939)This returns a numeric identifier for the thread identified by this
ThreadId
.
As noted in the documentation for the type itself, it is essentially an opaque ID, but is guaranteed to be unique for each thread. The returned value is entirely opaque – only equality testing is stable. Note that it is not guaranteed which values new threads will return, and this may change across Rust versions.