死锁
发布于 2022-03-03 16:48:01
试判断一个消息队列是否可能死锁。
消息队列的缓冲区长度为L单位,读操作为每次从缓冲区读取R单位,写操作为每次写入缓冲区W单位。
消息队列会持续进行读写操作。具体为写操作会在缓冲区还剩余大于等于W单位空间时保持进行,当缓冲区内空间小于W时,写操作停止,等待读操作进行;类似的,读操作会在缓冲区可读内容大于等于R时保持进行,当可读内容小于R时,读操作停止,等待写操作进行。读写都是原子操作。
若读写操作均无法进行,定义此时状态为死锁。
给定L,R,W,问消息队列是否可能进入死锁状态,若能,输出YES,否则输出NO 输入描述: 第1行输入N(N<=10)表示数据组数。
从第2行到第N+1行,每行三个整数L,R,W。输入样例: 2 5 2 3 5 3 4 输出描述: 输出N行,每行输出'YES'或'NO'输出样例 NO YES
消息队列的缓冲区长度为L单位,读操作为每次从缓冲区读取R单位,写操作为每次写入缓冲区W单位。
消息队列会持续进行读写操作。具体为写操作会在缓冲区还剩余大于等于W单位空间时保持进行,当缓冲区内空间小于W时,写操作停止,等待读操作进行;类似的,读操作会在缓冲区可读内容大于等于R时保持进行,当可读内容小于R时,读操作停止,等待写操作进行。读写都是原子操作。
若读写操作均无法进行,定义此时状态为死锁。
给定L,R,W,问消息队列是否可能进入死锁状态,若能,输出YES,否则输出NO 输入描述: 第1行输入N(N<=10)表示数据组数。
从第2行到第N+1行,每行三个整数L,R,W。输入样例: 2 5 2 3 5 3 4 输出描述: 输出N行,每行输出'YES'或'NO'输出样例 NO YES
关注者
0
被浏览
22
1 个回答