question about the semantics of unshared variables
Jonathan M Davis via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jul 16 00:36:29 PDT 2015
On Wednesday, July 15, 2015 16:21:29 aki via Digitalmars-d-learn wrote:
> I want to make sure about the semantics of unshared variables.
>
> import std.concurrency;
> import core.thread;
> ubyte[1024 * 1024] buf1MB;
> void fun() { Thread.sleep(5000.msecs); }
> void testThread() {
> foreach(i; 0..2000) {
> spawn(&fun);
> }
> }
>
> Are instances of buf1MB created for every threads?
> Even if it is never accessed by the threads?
> If some static variable is defined in other module
> or in some library, all of them also instantiated
> for every threads?
Yes. Every thread gets a copy of the non-shared static variables, and all of
the non-shared static constructors get run for each thread.
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list