How do condition variables and semaphores differ when sending a signal? Solution conditional varaibles: 1) these are the variable which are combined with mutexes and used for implementing primitives which are synchronized 2)these variable allows the thread for wait for completion by using wait after the completion of job then it invoke other by using signal method semaphore: 1)here the shared resource can accesible by only one thread at a time 2)here at first n threads can access a resource concurrently and then it provide signal mechanism by using of wait and signal methods.