What is a critical section and how is it implemented?
Answers were Sorted based on User's Feedback
Critical Section:-
In concurrent programming a critical section is a piece of
code that accesses a shared resource (data structure or
device) that must not be concurrently accessed by more than
one thread of execution. A critical section will usually
terminate in fixed time, and a thread, task or process will
only have to wait a fixed time to enter it. Some
synchronization mechanism is required at the entry and exit
of the critical section to ensure exclusive use.
for example a printer, can only be accessed by one process
at a time.
Example Code For Critical Sections with Win32 API: -
#include <windows.h>
CRITICAL_SECTION cs; /* This is the critical section
object -- once initialized, it cannot
be moved in memory */
/* Initialize the critical section -- This must be done
before locking */
InitializeCriticalSection(&cs);
/* Enter the critical section -- other threads are locked
out */
EnterCriticalSection(&cs);
/* Do some thread-safe processing! */
/* Leave the critical section -- other threads can now
EnterCriticalSection() */
LeaveCriticalSection(&cs);
/* Release system object when all finished -- usually at
the end of the cleanup code */
DeleteCriticalSection(&cs);
| Is This Answer Correct ? | 10 Yes | 2 No |
Answer / umesh
Critical Section allows you to explicitly lock any resources so that untill u release the lock no body else can able to access it. Resource can be any thing. for example a variable, or a piece of code..
We can use Either CRITICAL_SECTION structure with the help of EnterCriticalSection and LeaveCriticalSection APIs.
Or MFC wrapper, CCriticalSection type variable. which gives u lock and unlock mechanism
| Is This Answer Correct ? | 2 Yes | 2 No |
is there any class which is not derived from Cobject
Difference between Cclint DC & Cpaint Dc
What is the command routing in MFC framework?
how does the UIThread and worker thread communicates and handle events
Which Macro is a Super set of other two macro DECLARE_SERIAL,DECLARE_DYNAMIC and DECLARE_DYNCREATE. ?
How can server communicate with more than one client
What MFC base classes provide support for ActiveX controls?
How do I create a dialog box in mfc?
how many types of classes are ther,what are that
What is document-view architecture ? Give me one real time example for SDI ?
What?s the difference between Modal and Modeless Dialog?
Tell me the work of HTREDUCE and HTZOOM