W3cubDocs

/Rust

Struct std::thread::Thread

pub struct Thread { /* fields omitted */ }

A handle to a thread.

Examples

use std::thread;

let handler = thread::Builder::new()
    .name("foo".into())
    .spawn(|| {
        let thread = thread::current();
        println!("thread name: {}", thread.name().unwrap());
    })
    .unwrap();

handler.join().unwrap();

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

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

Gets the thread's unique identifier.

Examples

#![feature(thread_id)]

use std::thread;

let handler = thread::Builder::new()
    .spawn(|| {
        let thread = thread::current();
        println!("thread id: {:?}", thread.id());
    })
    .unwrap();

handler.join().unwrap();

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

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

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.

© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/thread/struct.Thread.html