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 |
what is the meaning of constant FILE EXCEEDS LENGTH LIMIT while loading from ps file to vsam in the jcl?
1) create ToolTip in MFC?
what do you mean by psychic window?
Tell me the work of HTREDUCE and HTZOOM
Which CPrintInfo member variable must be set for multiple page printouts?
Can you explaing the relashionship between document,frame and view ?
How you create a button dynamically?
How can update edit control data of an executing application from other application?
What interface must be supported by an ActiveX control?
what is the difference between SDI and MDI
15 Answers CMC, HCL, Siemens,
How can i change the color of a dropdowncombobox elements
How to handle command line arguements from simple MFC application ?