mutex lock은 대신에 락을 소유한 쓰레드만 release가능인거고 semaphore는 아무 쓰레드에서 signal해줄 수 있는거죠?