当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Rust thread_local用法及代码示例


本文简要介绍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-lang.org大神的英文原创作品 Macro std::thread_local。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。