一、pthread_cond_timedwait即便超時,也要從新得到mutex,若是mutex暫時沒法獲得,將等待。線程
能夠設置一個線程等condition 1秒,另外一線程佔用mutex5秒,發現第一個線程pthread_cond_timedwait返回須要5秒。it
二、調用pthread_cond_timedwait等待中的線程,在被detach後,也要從新得到mutex,纔會退出。io
能夠設置一個線程pthread_cond_wait,另外一線程佔用mutex 5秒,還有一個線程對第一個線程調用pthread_cancel,能夠發現也須要5秒才返加。thread
三、對一個被join的線程A,再有一個線程對A調用pthread_detach, pthread_join與pthread_cancel都不會出錯,pthread_cancel返回0,在線程結束時,pthread_join也返回0(pthread_cancel對已經被join的線程沒有影響)。im
四、對一個被detached的線程id,再調用pthread_join,則會返回EINVAL(22)錯誤。di
五、pthread_cancel一個線程A,該線程正在用pthread_join等待線程B。 線程A被取消,線程B被結束了。co