shared型修飾子のサンプルコード追加
- http://rayerd.plala.jp/pukiwiki/ingwiki/index.php?C%2FC%2B%2B%E3%81%AB%E7%96%B2%E3%82%8C%E3%81%9F%E4%BA%BA%E3%81%AED%E8%A8%80%E8%AA%9E2.0
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 }
ここには前に似たようなものを書いたかもしれない.