本文簡要介紹rust語言中 std::thread::JoinHandle.join
的用法。
用法
pub fn join(self) -> Result<T>
等待相關線程完成。
如果相關線程已經完成,此函數將立即返回。
就 atomic memory orderings 而言,關聯線程的完成與該函數的返回同步。換句話說,該線程 happen
before 執行的所有操作都是 join
返回後發生的操作。
如果關聯的線程出現緊急情況,則返回 Err
並提供給 panic!
的參數。
Panics
如果線程嘗試加入自身,則此函數可能會在某些平台上出現緊急情況,否則可能會在加入線程時造成死鎖。
例子
use std::thread;
let builder = thread::Builder::new();
let join_handle: thread::JoinHandle<_> = builder.spawn(|| {
// some work here
}).unwrap();
join_handle.join().expect("Couldn't join on the associated thread");
相關用法
- Rust JoinHandle.thread用法及代碼示例
- Rust JoinHandle用法及代碼示例
- Rust UdpSocket.set_multicast_loop_v6用法及代碼示例
- Rust i64.overflowing_add_unsigned用法及代碼示例
- Rust Box.downcast用法及代碼示例
- Rust BTreeMap.last_key_value用法及代碼示例
- Rust str.make_ascii_uppercase用法及代碼示例
- Rust u128.checked_pow用法及代碼示例
- Rust usize.wrapping_mul用法及代碼示例
- Rust AtomicU8.fetch_sub用法及代碼示例
- Rust PanicInfo.payload用法及代碼示例
- Rust MaybeUninit.assume_init_mut用法及代碼示例
- Rust String.try_reserve用法及代碼示例
- Rust Mutex.new用法及代碼示例
- Rust f32.exp用法及代碼示例
- Rust Result.unwrap_or_else用法及代碼示例
- Rust slice.sort_unstable_by_key用法及代碼示例
- Rust Formatter.precision用法及代碼示例
- Rust i128.log2用法及代碼示例
- Rust OsStr.to_ascii_uppercase用法及代碼示例
- Rust f32.hypot用法及代碼示例
- Rust RefCell.try_borrow_unguarded用法及代碼示例
- Rust i16.log10用法及代碼示例
- Rust LowerExp用法及代碼示例
- Rust HashSet.get_or_insert_with用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::thread::JoinHandle.join。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。