use cond var s thread
use cond's mutex
use lock.wait