Print

Print


Static variables are shared between threads.  Don't make your thread-specific data static.

"Are there some issues when different threads try to read/write into the same variable?"

Yes, it can get very tricky if writing is involved.  For instance, while different threads can read/write to the same static variable, the changes might not become visible to other threads immediately due to how caching works.  See http://stackoverflow.com/questions/4934913/are-static-variables-shared-between-threads

Avoid it entirely when you can.

Siggy

On Jun 20, 2015 5:00 AM, "Axel Kowald" <[log in to unmask]> wrote:
Hi,

While the hand-coded versions of the top-level loop do indeed reuse the same SimState, this is not the case for doLoop.  There's a good reason for this: one of the things doLoop can do is run your N jobs in *parallel*, not just in serial.
thanks for the information.
I decided to use the doLoop and collect my data in static class variables.
Because that worked fine I'm now also trying to use the -parallel option.
It seems that my static variable is filled from all parallel batches. How is this possible if all batches run in independent threads?  Are there some issues when different threads try to read/write into the same variable?
I'm normally not using parallel stuff, so please excuse if this is trivial.

Many thanks,
   Axel