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 |
How many types of combo box are their
2 Answers Aaditya Info Solutions, E Logic,
Hi All, I have created one MFC Dialog Based application.now if i am running the application its working fine,instead of closing he application i minimized the application,if i run the application again,i am getting the Dialog. I want to prevent the calling of application multiple times. please give me the code and let me know in which method i need to make changes. Praveer
what is the use of AFX_MANAGE_STATE ?
How to handle dynamic menus in mfc? What happens when client calls cocreateinstance?
Do you have an idea about MFC?
What is the difference between ASSERT and VERIFY?
What function is used to disable a control at runtime?
How do I create a dialog box in mfc?
Psychic Window Technique
what is the size of a process
What view class enables you to use an edit control as a view?
Does the application have more than one object? If no, then what is the reason?