Using threads
Threads are a common building block for multitasking inside a single process. A thread is an independent stream of program execution that has access to the memory of other threads.
How to do it…
To start using threads, we will have to execute the following steps:
Write the command
import core.thread;
.Write a function to perform your independent task.
If the thread needs to pause, use the static method
Thread.sleep
from the thread to be paused.Create an additional thread with
auto thread = new Thread
, passing it as a pointer to your function.Call
thread.start
to begin execution.
Take a look at the following code:
import core.thread; import core.atomic; import std.stdio; int count = 0; shared(int) sharedCount = 0; // this is the function that will run in our threads void threadedFunction() { foreach(i; 0 .. 5) { writeln("thread running ", count++, " global: ", sharedCount); Thread.sleep(1.seconds); atomicOp!"+="(sharedCount, 1); } } void main() { auto thread ...