【发布时间】:2015-10-28 23:19:52
【问题描述】:
首先,如果这不是我的问题的正确位置,请原谅。
我正在准备考试,这是给出的样题:
以前考试中给出的问题:
学生们决定见面并去看电影。学生们决定见面并去看电影。决定见面去看电影。 他们以group_size为一组聚集在一起后,他们去买票。每个学生学生学生购买自己的票(成为客户)。有两个售票亭(每个售票亭有一名职员)。如果店员有空,它将在线为下一位顾客服务(一位顾客在 时间)。两个展位只有一条线。
使用信号量和对信号量的操作,同步两种线程类型:Student 和文员。有 numStudents(默认 9)和 numClerks(默认 2)。考虑到那里 一大早的展位上都没有顾客在线。从店员的角度来看(它是 由你决定)你可以认为两个职员都已经在工作或者他们都没有 到了(当第一个客户出现时)。客户比 numStudents 多。 给出所使用的每个信号量的类型、初始值,并简要说明其用途。 如果布尔变量的使用可以被信号量代替,则不要使用它们。 大约在同步之前,线程的可能执行伪代码可能是:
Student ( ) { arrive to meeting place // napping group together go buy ticket buy ticket //napping watch movie // napping } Clerk ( ) { get to workplace // napping while(true) { serve customer // if ∃ a customer } }
如果有人能帮我解决这个问题,我将不胜感激。
【问题讨论】:
标签: multithreading semaphore binary-semaphore