Struct std::thread::Thread1.0.0 [] [src]

pub struct Thread { /* fields omitted */ }

A handle to a thread.

You can use it to identify a thread (by name, for example). Most of the time, there is no need to directly create a Thread struct using the constructor, instead you should use a function like spawn to create new threads, see the docs of Builder and spawn for more.

Examples

use std::thread::Builder;

for i in 0..5 {
    let thread_name = format!("thread_{}", i);
    Builder::new()
        .name(thread_name) // Now you can identify which thread panicked
                           // thanks to the handle's name
        .spawn(move || {
            if i == 3 {
                 panic!("I'm scared!!!");
            }
        })
        .unwrap();
}Run

Methods

impl Thread
[src]

Atomically makes the handle's token available if it is not already.

See the module doc for more detail.

Examples

use std::thread;

let handler = thread::Builder::new()
    .spawn(|| {
        let thread = thread::current();
        thread.unpark();
    })
    .unwrap();

handler.join().unwrap();Run

🔬 This is a nightly-only experimental API. (thread_id #21507)

Gets the thread's unique identifier.

Examples

#![feature(thread_id)]

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);Run

Gets the thread's name.

Examples

Threads by default have no name specified:

use std::thread;

let builder = thread::Builder::new();

let handler = builder.spawn(|| {
    assert!(thread::current().name().is_none());
}).unwrap();

handler.join().unwrap();Run

Thread with a specified name:

use std::thread;

let builder = thread::Builder::new()
    .name("foo".into());

let handler = builder.spawn(|| {
    assert_eq!(thread::current().name(), Some("foo"))
}).unwrap();

handler.join().unwrap();Run

Trait Implementations

impl Clone for Thread
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Debug for Thread
[src]

Formats the value using the given formatter.