import std.thread; import std.cstream; void main() { string a = "A", b = "B"; Thread thA = new Thread(&thread, cast(void*)a); Thread thB = new Thread(&thread, cast(void*)b); thA.start(); thB.start(); thA.wait(); thB.wait(); dout.puts(""); Thread thX = new MyThread("X"); Thread thY = new MyThread("Y"); thX.start(); thY.start(); thX.wait(); thY.wait(); } int thread(void* p) { for (int i=0; i<10; ++i) dout.writef("%s ", *cast(char*)(p)).flush(); return 0; } class MyThread : Thread { private string s_; this(string s) { s_ = s; } override int run() { for (int i=0; i<10; ++i) dout.writef("%s ", s_).flush(); return 0; } }