使用信号量发生内存错误

使用信号量发生内存错误,第1张

你就一个信号量,而且两个线程都是先sem_wait,你的两个线程都会卡在sem_wait(&sem1)

你可以把其中给一个线程的sem_wait跟sem_post换个位置试一下

线程参数,传地址使用动态分配吧,你只用一个buffer,后面的很可能就把前面的给覆盖了。

把所有的输出printf使用一个互斥的信号量同步一下就行了吧,C的标准库不是线程安全的。

sem_init:初始化信号量sem_t初始化候指定信号量初始值及否进程间共享

sem_wait:直阻塞等待直信号量>0

sem_timedwait:阻塞等待若干间直信号量>0

sem_post:使信号量加1

sem_destroy:释放信号量sem_init应 答案补充 关于各函数具体参数请用man查看,man sem_init查看该函数帮助


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/157472.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-22
下一篇2023-03-22

发表评论

登录后才能评论

评论列表(0条)

    保存