strong semaphores specify the order in which processes are removed from the queue, which guarantees avoiding starvation. Weak semaphores do not specify the order in which processes are removed from the queue.
Search Google with: "Linux semaphores" and have a look through the websites on the subject.
As the use of semaphores in the past has caused more problems than created solutions therefore semaphores are not use in the producer and consumer problem.
The signal() operations associated with monitors is not persistent in the following sense: if a signal is performed and if there are no waiting threads, then the signal is simply ignored and the system does not remember the fact that the signal took place. If a subsequent wait operation is performed, then the corresponding thread simply blocks. In semaphores, on the other hand, every signal results in a corresponding increment of the semaphore value even if there are no waiting threads. A future wait operation would immediately succeed because of the earlier increment.
send signals
Like condoms.
To avoid deadlocks using semaphores, you need to carefully plan the order in which semaphores are acquired and released in your code. Make sure to always acquire semaphores in the same order to prevent circular dependencies. Additionally, consider using techniques like timeout mechanisms or resource hierarchy to prevent deadlocks.
The use of semaphores
Semaphores provide synchronization between threads to prevent race conditions and ensure orderly access to shared resources. They are more efficient than busy-waiting mechanisms and are suitable for both producer-consumer and reader-writer problems. Additionally, semaphores support priority inheritance to prevent issues with priority inversion.
the differents is the bathroom time
They were called Semaphores.
Three types of semaphores: 1.General/Counting semaphores: (can take any non-negative value) These are used when you might have multiple devices (like 3 printers or multiple memory buffers). 2.Binary semaphores: (can either be 0 or 1) These are used to gain exclusive access to a single resource (like the serial port, a non-reentrant library routine, or a hard disk drive). A counting semaphore that has a maximum value of 1 is equivalent to a binary semaphore (because the semaphore's value can only be 0 or 1). 3.Mutex semaphores: These are optimized for use in controlling mutually exclusive access to a resource. There are several implementations of this type of semaphore.