取号机排队取号服务问题
假设某天的取号机最多能取出15个号。
一共有2个服务窗口。
要求用代码模拟出:
1)客户用取号机领取服务编号。
2)模拟服务窗口的职员服务取到号的客户。
情景示意图
Golang 代码
/*
数据结构
队列
题目一:
1)创建一个数组模拟队列,每隔一定时间[随机],给数组添加一个数。
2)启动两个协程,每隔一定时间(时间随机)到队列取出数据
3)在控制台输出
x 号协程 服务 ---》x 号客户
x 号协程 服务 ---》x 号客户
x 号协程 服务 ---》x 号客户
4)使用锁机制即可
*/
package main
import (
"errors"
"fmt"
"math/rand"
"sync"
"time"
)
type Queue struct {
maxSize int
queue [15]int
front int
rear int
}
// 声明一个全局互斥锁
var lock sync.Mutex
// 添加数据到队列
func (this *Queue)