Minas Mina wrote: > I have been "playing" latetly with std.concurrency and > core.thread. I like both, but they are entirely different > approaches to concurrency. > > std.concurrency: Uses message passing. Does not allow passing of > mutable types. > core.thread: Essentially the same as the approach taken by Java. > > 1) Is one favoured over the other? I guess std.concurrency would > be, because it uses messages (and I recently read somewhere that > immutability + message passing = good thing). I've not really got around to doing any concurrent programming in anger with D yet but from what I've read message passing is the preferred method. Fortunately when it comes to answering your question the concurrency chapter for The D Programming Language book (TDPL) was made freely available as a preview http://www.informit.com/articles/article.aspx?p=1609144. Hopefully that contains your answers :).
> Well, my problem > about is, how can send mutable data to another thread? _Can_ I do > it? If not, how am I supposed to share data between them? Not > everything can be immutable right? >From what I gather this is where the shared keyword typically comes into play which should be detailed in the url above. > For example I would like to > have a thread calculate the sum of the first half of an array > while another thread would calculate the other half, and I could > add the two results at the end. For this task there is another concurrency module called std.parallelism that is designed for this type of thing (afaik). http://dlang.org/phobos/std_parallelism.html > > 2) What about core.thread? To do proper sync between threads in > core.thread, semaphore, mutexes and stuff like that are needed. > Are those "good practice" in D? > > 3) I have also read a bit about syncronized classes and shared > classes/structs, altough I didn't understand it too much (well I > didn't try too much to be honest). > > For all those appoaches, which is the preffered? My observation is std.concurrency is being pushed as the preferred default method. > For all those appoaches, which is the preffered for game > programming? > > Thank you.