1.两个线程掉用一个锁时,如果一个线程上了锁,另一个线程就被阻塞了.2.唤醒后会再执行一次while循环,检查wait条件是否成立,不成立则执行代码部分,执行完代码就解锁.3.while是为了检查条件变量,然后决定是否等待.如果用if,那么假设有两个线程同时等待条件变量,结果只释放了一个位置,由于是if,两个线程都往下执行,这就会出问题,所以要用while检查.4.signal如果在解锁前,那么等待的线程还没拿到锁,就没有进入条件变量的等待,发信号也没用.5.条件变量是线程中的东西,就是等待某一条件的发生,和信号一样。
@link
加入收藏
相关问答推荐