首先,如果这不是我的问题的正确位置,请原谅我。
我正在准备考试,这是给出的示例问题:
上一次考试给出的问题:
学生们决定见面并去看电影。学生们决定见面并去看电影。决定见面去看电影。他们以group_size为一组聚集在一起后,他们去买票。每个学生学生学生购买自己的票(成为客户)。有两个售票亭(每个售票亭有一名职员)。如果店员有空,它将在线为下一位顾客服务(一次一位顾客)。两个展位只有一条线。
使用信号量和对信号量的操作,同步两种线程类型:Student 和 Clerk。有 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 } }
如果有人能帮我解决这个问题,我将不胜感激。