std.concurrent
并发辅助模块。
yaoxiang
use std.concurrent本模块依赖操作系统线程,在
wasm32目标上不导出。
函数一览
| 函数 | 签名 |
|---|---|
sleep | (millis: Int) -> Void |
thread_id | () -> String |
yield_now | () -> Void |
函数
sleep
yaoxiang
sleep: (millis: Int) -> Void阻塞当前线程指定毫秒数。
millis—— 休眠毫秒数;非Int或缺失时按0处理(不报错)
单位注意:
std.time.sleep以秒为单位且接受小数,本函数以毫秒为单位。concurrent.sleep(1)睡 1 毫秒,time.sleep(1)睡 1 秒。
yaoxiang
use std.concurrent
main: () -> Void = {
concurrent.sleep(0)
concurrent.sleep(1)
}thread_id
yaoxiang
thread_id: () -> String返回当前线程的标识字符串。
返回:形如 ThreadId(1) 的字符串。具体值随平台与调度变化,只应做存在性判断,不要依赖其具体内容或格式。
yaoxiang
use std.assert
use std.concurrent
use std.string
main: () -> Void = {
tid = concurrent.thread_id()
assert(string.len(tid) > 0)
}yield_now
yaoxiang
yield_now: () -> Void主动让出当前线程的调度时间片,给其它线程运行机会。
yaoxiang
use std.concurrent
main: () -> Void = {
concurrent.yield_now()
}相关
std.time.sleep—— 秒级休眠- 语言规范:并发模型 ——
spawn与并作语义
