<link rel="stylesheet" href="../../noscript1.34.1.css">

1.0.0[][src]Struct std::thread::Thread

pub struct Thread { /* fields omitted */ }

A handle to a thread.

Threads are represented via the Thread type, which you can get in one of two ways:

The thread::current function is available even for threads not spawned by the APIs of this module.

There is usually no need to create a Thread struct yourself, one should instead use a function like spawn to create new threads, see the docs of Builder and spawn for more details.


impl Thread[src]

pub fn unpark(&self)[src]

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

Every thread is equipped with some basic low-level blocking support, via the park function and the unpark() method. These can be used as a more CPU-efficient implementation of a spinlock.

See the park documentation for more details.


use std::thread;
use std::time::Duration;

let parked_thread = thread::Builder::new()
    .spawn(|| {
        println!("Parking thread");
        println!("Thread unparked");

// Let some time pass for the thread to be spawned.

println!("Unpark the thread");


pub fn id(&self) -> ThreadId

Gets the thread's unique identifier.


use std::thread;

let other_thread = thread::spawn(|| {

let other_thread_id = other_thread.join().unwrap();
assert!(thread::current().id() != other_thread_id);Run

pub fn name(&self) -> Option<&str>[src]

Gets the thread's name.

For more information about named threads, see this module-level documentation.


Threads by default have no name specified:

use std::thread;

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

let handler = builder.spawn(|| {


Thread with a specified name:

use std::thread;

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

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


Trait Implementations

impl Debug for Thread[src]

impl Clone for Thread[src]

fn clone_from(&mut self, source: &Self)[src]

Performs copy-assignment from source. Read more

Auto Trait Implementations

impl Send for Thread

impl Sync for Thread

Blanket Implementations

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, U> Into for T where
    U: From<T>, 

impl<T> Borrow for T where
    T: ?Sized

impl<T> BorrowMut for T where
    T: ?Sized

impl<T> Any for T where
    T: 'static + ?Sized

impl<T> ToOwned for T where
    T: Clone

type Owned = T