basic concurrency
Frank Benoit
keinfarbton at nospam.xyz
Tue Apr 18 09:16:47 PDT 2006
> How do I use 'synchronized' to make sure get() and append() can't be
> called simultaneously by two or more different threads?
class MyArray {
private int[] array;
int get(size_t i){
synchronized(this){
return array[i];
}
}
void append(int v){
synchronized(this){
array ~= v;
}
}
}
the synchronized statement used the object instance reference of MyArray
like a binary semaphore.
It is guaranteed only one thread at a time and object can pass the
barrier. I don't know, perhaps the "(this)" can be omitted.
More information about the Digitalmars-d-learn
mailing list