Expand description
§XWOS RUST:当前线程
此模块中的方法,只会对代码所运行的线程起作用。命名中的 c 是 current 的意思。
§获取自身的线程描述符
线程可通过方法 i()
获取自身的线程描述符。
§通知调度器重新调度线程
线程可通过方法 yield_now()
主动让出CPU的使用权。
§判断当前线程是否可被冻结
线程可通过方法 shld_frz()
判断是否需要冻结,如果是,可调用 freeze()
冻结自身。
线程的冻结只会发生在一些特殊的条件下:
- 系统开始低功耗流程;
- 线程在CPU之间迁移。
§判断当前线程是否可退出
线程可通过方法 shld_stop()
判断是否被设置了 退出状态 ,退出状态 是其他线程通过 DThdHandle::stop()
方法设置的。
§线程睡眠
§睡眠
线程可以通过方法 sleep()
指定需要睡眠多长时间,线程唤醒的时间可能会略微超过指定的时长。
§睡眠到指定的时间点
当需要到某个时间点唤醒时,可以通过 sleep_to()
方法睡眠。此方法不关心睡眠多长时间,只关心到哪个时间唤醒。
§从一个时间起点睡眠到另一个时间点
方法 sleep_from()
可以指定从某个时间点开始睡眠,持续多长时间。
§冻结线程
当线程通过方法 shld_frz()
判断出需要冻结时,可通过方法 freeze()
冻结自身。冻结之前需要释放掉所有资源。
Functions§
- 冻结当前线程
- 获取当前线程的对象描述符
- 判断当前线程是否可被冻结
- 判断当前线程是否可退出
- 线程睡眠一段时间
- 线程从一个时间起点睡眠到另一个时间点
- 线程睡眠到一个时间点
- 通知调度器重新调度线程