本题要求实现一个机器人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, lockwhile len(goods)>0:with lock:if len(goods)>0:print("Robot已搬运:货物{}".format(goods.pop(0)))