问题描述:
公共汽车上,司机和售票员的活动分别是:
司机的活动:启动车辆;正常行车;到站停车。
售票员的活动:关车门;售票;开车门。
在汽车不断的到站、停站、行驶过程中,用信号量和P,V操作实现它们的同步。
问题解决;
我们可以使用两个信号量来实现司机与售票员间的同步,具体实现形式如下:
司机进程:
司机开车;
v(s2);
p(s1);
汽车离站;
售票员进程:
售票员售票;
p(s2);
售票员开车门;
乘客上下车;
售票员关车门;
v(s1);
多线程实现同步:
#include
#include
#include
sem_t semid1,semid2;
void* driver()
{
while(1)
{
printf("n");
printf("driver开车n");
sem_post(&semid1);
sem_wait(&semid2);
printf("driver离站n");
}
}
void* passenger()
{
whi
本文发布于:2024-02-03 04:20:13,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170690521148610.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |