basic concurrency
    Sean Kelly 
    sean at f4.ca
       
    Tue Apr 18 16:25:00 PDT 2006
    
    
  
Tydr Schnubbis wrote:
> 
> When one thread executes a synchronized, piece of code, can another 
> thread execute another piece of synchronized code?  The way I read the D 
> docs, it can.  But how can this work if that's true?  That only one 
> thread can execute the 'get' method at any given time doesn't help if 
> another thread at the same time can execute another method that modifies 
> the same array.
> 
> And this syntax:
> synchronized void get(size_t i) {}
> 
> Does this allow get to be run only by one thread for all the objects of 
> the class, or one thread per object, like synchronized (this) {} does?
I believe 'synchronized' applied to an object method synchronized on 
that object, while 'synchronized' applied to a static method 
synchronizes on that type's ClassInfo object.  Finally, 'synchronized' 
in free functions synchronizes on the global monitor.  Does that help?
Sean
    
    
More information about the Digitalmars-d-learn
mailing list