Weak semaphores are often defined as
if a process (or thread), say p1, performs a V operation and some other process is waiting on that semaphore, then the first process (i.e. p1) is not allowed to immediately perform another P operation on that semaphore. Instead, one of the waiting processes must be given its turn.
Further, while a single weak-semaphore cannot guarantee starvation-freedom, using few of them can actually guarantee starvation-freedom. Can anyone mention any practical use of such weak-semaphores!
ǂThe quoted section is from the paper "An Efficient Solution to the Mutual Exclusion Problem Using Weak Semaphores" by S. A. Friedberg and G. L. Peterson, with a bit of embellishment