2013年3月19日

花了一天测试明白了两个事情

摘要: 1. pthread_cond_wait/pthread_cond_timedwait两个函数,只要之前mutex是正常lock住了,当他们返回的时候,会保证mutex被当前thread获得。无论正常返回还是错误返回。所以之前写多线程的时候,用到了cond等数据,之后用cancel线程时,会出现只cancel到一个线程的情况。其实是第一个线程被cancel了,被cancel时正在pthread_cond_wait中阻塞,然后从函数中返回,获得了mutex,然后线程结束,但是mutex没有释放,导致其他线程无法获得mutex,于是就一直阻塞。另外,如果使用pthread_cond_timedwa 阅读全文

posted @ 2013-03-19 17:42 Qwertycen 阅读(146) 评论(0) 推荐(0) 编辑

导航