pub struct SThd<const N: XwSz, R>where
    [XwStk; N]: Sized,
    R: Send,{ /* private fields */ }Expand description
静态线程对象结构体
此结构体用于创建具有 'static 生命周期的线程对象。
Implementations§
source§impl<const N: XwSz, R> SThd<N, R>where
    [XwStk; N]: Sized,
    R: Send,
 
impl<const N: XwSz, R> SThd<N, R>where
    [XwStk; N]: Sized,
    R: Send,
sourcepub fn run<'a>(&'static self, f: fn(_: &Self) -> R) -> SThdHandle<'a, N, R>
 
pub fn run<'a>(&'static self, f: fn(_: &Self) -> R) -> SThdHandle<'a, N, R>
以线程函数 f 启动静态线程
此方法限定了参数的 [&'static self] ,因此若试图在函数局部定义静态线程,
调用此方法时,编译器会提示错误:生命周期不够长。
此约束的目的是让用户只能在函数外部定义静态线程对象。
§线程函数
线程函数的原型为 fn(&Self) -> R ,线程运行时,系统会以静态线程自身的引用作为参数调用线程函数 f 。
用户可通过此引用调用线程的方法或访问线程的名字,栈大小等信息。
§返回值
此方法会返回静态线程的句柄 [SThdHandle<'a, N, R>] ,通过此句柄,其他线程可通知此线程退出并获取返回值。
§上下文
- 线程、中断、中断底半部、空闲任务
§示例
use xwrust::xwos::thd::*;
static STHD: SThd<1024, &str> = SThd::new("SThd", true);
pub fn xwrust_example_sthd() {
    STHD.run(|sthd| { // 子线程
        // 线程功能
        "OK" // 返回值
    });
}