linux进程司机售票员问题,linux 环境下使用信号量实现司机售票员进程同步,线程同步问题...

本文通过信号量和P,V操作解决Linux系统中司机与售票员进程同步问题。司机进程包括开车、离站,售票员进程包括售票、开关车门。采用多线程和多进程两种方式实现同步,确保操作正确顺序。" 106137825,9240684,Java 实现简单即时聊天系统,"['Java', '网络编程', 'Socket编程', '多线程', '通信协议']
摘要由CSDN通过智能技术生成

问题描述:

公共汽车上,司机和售票员的活动分别是:

司机的活动:启动车辆;正常行车;到站停车。

售票员的活动:关车门;售票;开车门。

在汽车不断的到站、停站、行驶过程中,用信号量和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

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值