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.
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 ...