Junior — Middle
Can you list the main mechanisms of thread and process synchronization?
sobes.tech AI
Answer from AI
The main mechanisms for thread and process synchronization in C# include:
- lock — provides exclusive access to a resource by locking a section of code for other threads.
- Mutex — a cross-process locking mechanism that allows synchronization between different processes.
- Semaphore and SemaphoreSlim — limit the number of threads that can access a resource simultaneously.
- Monitor — a more flexible locking mechanism with the ability to wait and notify threads.
- AutoResetEvent and ManualResetEvent — allow threads to wait for a signal to continue work.
- Interlocked — provides atomic operations on variables to prevent race conditions.
Example of using lock:
private readonly object _locker = new object();
void IncrementCounter()
{
lock (_locker)
{
// critical section
counter++;
}
}