关于linux下的多线程使用sem信号量的运行问题

关于linux下的多线程使用sem信号量的运行问题,第1张

不是信号量的问题

printf函数,是先写到输出缓冲,遇到\n时,或者缓冲区满时,或者有强制输出(fflush)时,才会将缓冲区里的内容输出到屏幕上(标准输出设备:stdout)。你的代码里面并没有以上3个触发条件的任意一种,所以printf的内存没有实际输出到屏幕上。

你只要在每个printf函数后面加上fflush(stdout)就可以了。

操作系统中的信号指的是一个相对抽象的概念。信号量 sem 是指在利用 P、V 原语编程时所需要对 sem 进行的赋值操作(加 1 或者减 1 操作)。具体的例子你可以参照操作系统教材上的程序。进程的同步和互斥是操作系统中非常重要的概念。再具体的问题,你就得向教你操作系统的老师请教了。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存