本题要求实现一个机器人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)))
?