多个机器人协同工作的程序用Python写一份
时间: 2023-05-29 18:05:49 浏览: 124
这是一个简单的多机器人协同工作的程序示例,使用Python编写:
```python
import threading
class Robot(threading.Thread):
def __init__(self, name, task_queue):
threading.Thread.__init__(self)
self.name = name
self.task_queue = task_queue
def run(self):
while True:
task = self.task_queue.get()
if task is None:
break
print("Robot %s is performing task %s" % (self.name, task))
self.task_queue.task_done()
def main():
task_queue = Queue()
robots = []
for i in range(3):
robot = Robot("Robot %d" % i, task_queue)
robot.start()
robots.append(robot)
tasks = ["task1", "task2", "task3", "task4", "task5"]
for task in tasks:
task_queue.put(task)
task_queue.join()
for i in range(3):
task_queue.put(None)
for robot in robots:
robot.join()
if __name__ == "__main__":
main()
```
这个程序创建了三个机器人线程,每个机器人都从任务队列中获取任务并执行。任务队列是一个线程安全的队列,用于协调多个机器人之间的工作。在主函数中,程序将一些任务添加到队列中,并等待所有任务完成。当所有任务完成后,程序会将None添加到队列中,以便所有机器人线程退出。最后,程序等待所有机器人线程退出。
阅读全文