What is Thread ?(VC++)What is the difference between Cmutex
and Csemaphone?
Answers were Sorted based on User's Feedback
Answer / jitendra
An object of class CMutex represents a "mutex" ? a
synchronization object that allows one thread mutually
exclusive access to a resource. Mutexes are useful when
only one thread at a time can be allowed to modify data or
some other controlled resource. For example, adding nodes
to a linked list is a process that should only be allowed
by one thread at a time. By using a CMutex object to
control the linked list, only one thread at a time can gain
access to the list.
An object of class CSemaphore represents a "semaphore" ? a
synchronization object that allows a limited number of
threads in one or more processes to access a resource. A
CSemaphore object maintains a count of the number of
threads currently accessing a specified resource.
| Is This Answer Correct ? | 12 Yes | 2 No |
Answer / k.santhoshkumar
A thread is basically a path of execution through a
program. It is also the smallest unit of execution that
Win32 schedules. A thread consists of a stack, the state of
the CPU registers, and an entry in the execution list of
the system scheduler. Each thread shares all the process's
resources.
| Is This Answer Correct ? | 2 Yes | 0 No |
Answer / mahesh vanama
A mutex provides mutual exclusion, either producer or consumer can have the key (mutex) and proceed with their work. As long as the buffer is filled by producer, the consumer needs to wait, and vice versa.
A semaphore is a generalized mutex. In lieu of single buffer, we can split the 4 KB buffer into four 1 KB buffers (identical resources). A semaphore can be associated with these four buffers. The consumer and producer can work on different buffers at the same time.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / zero zero
CMutex CSemaphore
Allows at most one thread allows more than one thread to
access the resource(RES) Access the RES simultaneousl
y
Prevents more than one It allows more that
one thread 2
Thread to access the res access the resource
Using mutex, we can Using semaphore, we can
sync
Synchronize one/more threads threads with in the process
In different process or with in
Process.
CMutex is a single lock CSemaphore is a
multilock.
CMutex Implementation CSemaphore Implementation
API’s in CMutex Dev:
::Create Mutex() ::CreateSemaphore()
::WaitForSinglrObject() ::WaitForSinglrObject
()
::WaitForMultipleObject
() ::WaitForMultipleObject()
::Release Mutex() ::Release Semaphore
()
::CloseHand
le()
| Is This Answer Correct ? | 0 Yes | 2 No |
Answer / dhanya shajit
Thread is the smallest set of instructions that can be
executed.
Cmutex and Csemaphore are the ways used for synchronization
purpose.
the difference between the above two is..Cmutex is a single
lock where as csemaphore is a multilock..
mutex is used for mutual exclusion while semaphore is a
synchonozation variabl
| Is This Answer Correct ? | 4 Yes | 7 No |
what is the use of CCmdTarget?
How to setup a timer?
What are the differences between MFC Exception macros and C++ exception keywords?
I want recent paper pattern for HP company?
What are the advantages of using Doc/View or SDI over DialogBox
How to update windows title bar dynamically?
What is the difference between Extension DLL and Regular DLL?
What is the use of CObject::Dump function ?
1.Get string1,string2,string3 1.add string1 and 2,string1 and 3. 2.replace vowels with T 3.count number of T. 4.remove T 5.COPY string1 to stringf. 6.restore string1. print the following 1.Number of T 2.StringF 3.string1+string2+string3 Use pointers and functions
1)How to change a text of a button as Dynamically?
How can i change the color of a dropdowncombobox elements
If application hangs while SendMessage is waiting for the result, how you handle it?