本文简要介绍rust语言中 Macro std::thread_local
的用法。
用法
macro_rules! thread_local {
() => { ... };
($(#[$attr : meta]) * $vis : vis static $name : ident : $t : ty = const
{ $init : expr } ; $($rest : tt) *) => { ... };
($(#[$attr : meta]) * $vis : vis static $name : ident : $t : ty = const
{ $init : expr }) => { ... };
($(#[$attr : meta]) * $vis : vis static $name : ident : $t : ty = $init : expr
; $($rest : tt) *) => { ... };
($(#[$attr : meta]) * $vis : vis static $name : ident : $t : ty = $init :
expr) => { ... };
}
声明类型为 std::thread::LocalKey
的新线程本地存储键。
用法
该宏包装了任意数量的静态声明并使它们成为线程本地的。允许每个静态的宣传和属性。例子:
use std::cell::RefCell;
thread_local! {
pub static FOO: RefCell<u32> = RefCell::new(1);
#[allow(unused)]
static BAR: RefCell<f32> = RefCell::new(1.0);
}
有关更多信息,请参阅LocalKey 文档。
相关用法
- Rust type_name用法及代码示例
- Rust take_hook用法及代码示例
- Rust try用法及代码示例
- Rust try_exists用法及代码示例
- Rust transmute_copy用法及代码示例
- Rust take用法及代码示例
- Rust try_from_fn用法及代码示例
- Rust todo用法及代码示例
- Rust type_name_of_val用法及代码示例
- Rust transmute用法及代码示例
- Rust tuple用法及代码示例
- Rust temp_dir用法及代码示例
- 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-lang.org大神的英文原创作品 Macro std::thread_local。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。