smart_key类中自定义了一个结构体类型,里面包含用户的名字和用户持有的钥匙数。定义了一个自定义结构体类型的队列。
smart_key类中的get任务会对用户要获取钥匙数进行判断,如果满足,将用户信息存储到队列中,不满足则阻塞。
smart_key类中的put任务会对归还钥匙的用户在用户信息队列中进行检索。分为4种情况:①归还钥匙用户不在用户信息队列中,则不归还钥匙;②归还钥匙用户归还钥匙数大于持有钥匙数,也不能归还钥匙;③归还钥匙用户归还钥匙数等于持有钥匙数,成功归还钥匙,将该用户信息从用户信息队列中移除;④归还钥匙用户归还钥匙数小于持有钥匙数,成功归还钥匙,用户仍还持有部分钥匙。
smart_key类中的print_key_holders函数。
打印出用户信息列表信息,包括用户姓名和用户持有钥匙数。