What are the real advantages that D offers in multithreading?

cym13 via Digitalmars-d digitalmars-d at puremagic.com
Thu Jan 28 14:49:02 PST 2016

On Tuesday, 26 January 2016 at 11:44:56 UTC, nbro wrote:
> On Tuesday, 26 January 2016 at 11:41:49 UTC, nbro wrote:
>> Hi!
>> I have seen that D offers basically similar constructs to Java 
>> for example for creating multithreaded applications. I would 
>> like to understand better what are the real advantages that D 
>> offers. Does D offer something that other known programming 
>> languages, such as C++, Java and Python, do not offer? An 
>> exhaustive explanation with concrete examples would be nice.
> Moreover, could you also explain why D was designed to 
> synchronize entire classes instead of single methods. If I 
> synchronize single methods (in Java for example), I could still 
> be able to use other non-synchronized methods without needing 
> to acquire the lock, so I don't understand this decision.

I don't know what was the decisive point of the decision but in 
can't help but note that it makes a lot of sense because D has 

Object methods are meant to be used with the encapsulated data. 
If it doesn't touch those data then it must be a function, it has 
nothing to do as a method. If it does touch those data then in 
multithreaded applications synchronizing only one amongst others 
doesn't make any sense: encapsulated data is a share resource. In 
java you don't have functions, only methods, so I sort-of 
understand why they did it that way. But in any other (sane?) 
language functions should be decoupled from methods anyway.

More information about the Digitalmars-d mailing list