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と並作のセマンティクス
