尽量使用 sem 代替 pthread_cond
因为 pthread_cond 会有丢失信号的问题,sem 是原子操作,所以不会丢失信号
Mac 下对 sem_init()/sem_destory() 不支持:
注意:
MacOS 不支持 sem_init() 和 sem_destroy();这个例子若是想在 mac 下编译通过,需要自行修改替换相关的函数。
sem_init(&sem, 0, 1)改成sem_open("sem", O_CREAT|O_EXCL, S_IRWXU, 0)sem_destory(&sem)改成sem_unlink("sem");- 且支持
pthread_mutex_init(&mutex, NULL)却不支持pthread_mutex_destory(&mutex)
版权声明:本文为star871016原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。