...ing logging 4.0

はてなブログに移行しました。D言語の話とかいろいろ。

shared型修飾子のサンプルコード追加

import std.stdio;
import core.thread;
 
int a; // スレッドごとに別々の静的変数を用意
shared int b; // スレッド間で共有される静的変数を用意
 
void main()
{
    auto tg = new ThreadGroup;
    tg.create = {
        a++; // ここを実行するスレッドから見えているのは main 関数から見える a とは別の a
    };
    tg.create = {
        b++; // ここを実行するスレッドから見えているのは main 関数から見える b と同じ b
    };
    tg.joinAll();
    
    writeln(a); // main 関数から見える a は変更されていないので 0
    writeln(cast(int)b); // 共有しているので変更されて 1
}

ここには前に似たようなものを書いたかもしれない.