Problems with "shared"

cym13 via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sun Oct 9 14:16:09 PDT 2016


On Sunday, 9 October 2016 at 20:57:40 UTC, jython234 wrote:
> Hello,
>
> I've recently started a project in D, one which I plan to take 
> advantage of concurrency. This means I will need to use the 
> shared keyword. However, I have been having a few problems:
>
> 1. Where do I use the "shared" keyword? I've done things like 
> making whole classes shared, which doesn't seem to make the 
> member methods shared either. Also this creates a million 
> compiler errors when I try to access the constructor from a 
> non-shared function.
>
> 2. It seems that whenever I use shared I end up doing a ton of 
> "unsafe" casts from shared, and to shared and it makes me feel 
> uneasy. I don't think I'm supposed to be doing this.
>
> 3. Another concern I have is that I plan on using this project 
> to introduce other people to D. These people will probably have 
> some background with programming (such as Java), but will be 
> new to the "systems" programming area. I like D because of how 
> broad it can be, but one of the biggest problems it has is the 
> "shared" issue with Thread local data. This could be hard for 
> newcomers to learn.
>
> Any tips on how I could fix these problems?

Instead of rewriting a book that already exist I'll just say that 
[1] should answer all your questions. However I disagree with 
your saying that you'll "have to use shared", D proposes Data 
Sharing concurency of course but Message Passing concurrency is 
reccomended [2].

[1]: http://ddili.org/ders/d.en/concurrency_shared.html
[2]: http://ddili.org/ders/d.en/concurrency.html


More information about the Digitalmars-d-learn mailing list