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 |
Explain Doc/View architecture
How to update windows title bar dynamically?
If application hangs while SendMessage is waiting for the result, how you handle it?
What function is used to retrieve the currently selected index in a list box?
What interface must be supported by an ActiveX control?
What is difference between the TCP/IP and UDP socket
How to handle command line arguements from simple MFC application ?
How do you change the properties for a tree view control that is part of the CTreeView class?
What is LPCTSTR? What does LP denote it?
How can server communicate with more than one client
How can we create thread in MFC framework?
how many types of messages are their