Hi can anyone explain about the synchronization objects
types and where we are using in the code.
Answer / nishant
CRITICAL_SECTION :- CRITICAL_SECTION (CS) objects are initialized and deleted but do not have handles and are not shared by other processes. A variable should be declared to be of type CRITICAL_SECTION. Threads enter and leave a CS, and only one thread at a time can be in a specific CS. EnterCriticalSection blocks a thread if another thread is in the section. The waiting thread unblocks when another thread executes LeaveCriticalSection. If a thread already owns the CS, it can enter again without blocking; that is, CRITICAL_SECTIONs are recursive. CRITICAL_SECTIONs have the advantage of not being kernel objects and are maintained in user space. This usually, but not always, provides performance improvements.
Mutex: - mutexes can be named and have handles, they can also be used for interprocess synchronization between threads in separate processes. Mutex objects are similar to CSs, but, in addition to being process-sharable, mutexes allow time-out values and become signaled when abandoned by a terminating process.A thread gains mutex ownership (or locks the mutex) by waiting on the mutex handle (WaitForSingleObject or WaitForMultipleObjects), and it releases ownership with ReleaseMutex.
Semaphore :- Semaphores maintain a count, and the semaphore object is signaled when the count is greater than 0. The semaphore object is unsignaled when the count is 0.
Event :- Events are used to signal other threads that some event, such as a message being available, has occurred.
| Is This Answer Correct ? | 3 Yes | 0 No |
Does the application have more than one object? If no, then what is the reason?
How can update edit control data of an executing application from other application?
how does the UIThread and worker thread communicates and handle events
What is CALLBACK? How it work? what is the advantage of CALLBACK, please explain with an example
What is the base class for MFC Framework ?
Tell me the different controls in MFC ?
is there any class which is not derived from Cobject
Given two processes, how can they share memory?
what is the meaning of constant FILE EXCEEDS LENGTH LIMIT while loading from ps file to vsam in the jcl?
How to convert a CString variable to char* or LPTSTR?
Explain Doc/View architecture
How we call a dialog in another dialog?