理发师问题的实现
根据题目中描述的助教和学生的行为 需要两类线程 program 和student 其中 助教的活动有编程和睡觉两个事件 学生有等待和编程两个事件 走廊上有三个椅子 上面坐着等待的学生 学生到后 需判断有没有空闲的椅子 助教决定要教学或睡觉时 也要判断椅子上有没有学生 所以助教和学生之间的关系表现为: (1)助教和学生之间的同步关系:当助教睡觉时 学生进来需要唤醒助教 当有学生时 助教教其编程 没有的时候助教睡觉 (2)助教和学生之间的互斥关系:由于每次助教只能帮一个学生 且可供等待的椅子只有3把 即助教和椅子是临界资源 所以学生之间是互斥关系 (3)引入三个信号量和一个控制变量
用户评论
由于老师要课程设计 看了里面的代码 自己收获颇多