並行処理 - 概要

Cmは pthreadベースの並行処理モジュールを標準ライブラリで提供します。

対応バックエンド: Native (LLVM) のみ

最終更新: 2026-02-08


モジュール構成

モジュール 用途 ドキュメント
std::thread スレッド生成・管理 スレッド
std::sync::mutex 排他ロック・読み書きロック Mutex
std::sync::channel スレッド間メッセージパッシング Channel
std::sync::atomic ロックフリーのアトミック操作 Atomic

使い分けガイド

要件 推奨
共有状態の排他制御 Mutex
スレッド間データ送受信 Channel
カウンタ・フラグなど単純な共有変数 Atomic
読み取り多数・書き込み少数 RwLock

基本パターン

import std::thread::spawn;
import std::thread::join;
import std::sync::channel::create;
import std::sync::channel::send;
import std::sync::channel::recv;
import std::sync::channel::destroy;
import std::io::println;

long ch;

void* worker(void* arg) {
    send(ch, 42);
    return 0 as void*;
}

int main() {
    ch = create(1);
    ulong t = spawn(worker as void*);

    long value = 0;
    recv(ch, &value);
    println("Received: {value}");

    join(t);
    destroy(ch);
    return 0;
}