std.container and classes

foobar foo at bar.com
Tue Dec 20 22:34:12 PST 2011


On Wednesday, 21 December 2011 at 04:45:48 UTC, Jonathan M Davis 
wrote:
> On Tuesday, December 20, 2011 22:15:43 Caligo wrote:
[snip]
>> 2.  Are the new containers going to be multi-threaded?  i.e., 
>> will I be
>> able to insert elements into a container from multiple threads?
>
> No. That would introduce unnecessary overhead. If you want 
> synchronized containers, then wrap the standard ones in your 
> own. Maybe some sort of synchronized wrapper will be provided 
> by Phobos at some point, but the containers themselves are 
> definitely not going to be. You can add the multi-
> threading protections and the cost that they bring on top of an 
> implementation that doesn't have them, but if you have such 
> protections built-in, those using the containers can't remove 
> them and would be stuck with the performance cost.
>
> - Jonathan M Davis

actually, a synchronized container doesn't really provide 
concurrent write access, it serialized the access of multiple 
threads by using a lock. What about true concurrent containers 
such that two threads can access concurrently the same container 
at different places? E.g Array could be divided into chunks and 
each chunk is owned by a separate thread, Tree that can divide 
it's sub-trees among several threads, etc..


More information about the Digitalmars-d mailing list