10-1 HNCST - 多线程3 - 线程同步Lock——python
2023-12-31 22:34:25
本题要求实现一个机器人Robot类,该类为一个线程类,他能够从货物列表goods中取出货物,并输出。现有一批货物,容量为size,工厂配备了m个机器人(线程)不停地进行搬运,直到货物搬完,要求货物要按顺序码放,不得错乱。
提示:需要用到Lock锁保证货物顺序
裁判测试程序样例:
from threading import Thread, Lock
# ***************
# 你编写的类将放在这
# ***************
size, m = map(int, input().split())
lock = Lock()
# 生成货物 0 - (size-1)
goods = list(range(size))
# m个机器人同时搬运
for i in range(m):
Robot().start()
输入样例:
在这里给出一组输入。例如:
10 3
输出样例:
在这里给出相应的输出。例如:
Robot已搬运:货物0
Robot已搬运:货物1
Robot已搬运:货物2
Robot已搬运:货物3
Robot已搬运:货物4
Robot已搬运:货物5
Robot已搬运:货物6
Robot已搬运:货物7
Robot已搬运:货物8
Robot已搬运:货物9
class Robot(Thread):
def __init__(self):
Thread.__init__(self)
def run(self):
global goods, size, lock
while len(goods)>0:
with lock:
if len(goods)>0:
print("Robot已搬运:货物{}".format(goods.pop(0)))
?
文章来源:https://blog.csdn.net/qq_64037242/article/details/135319639
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!