编写一个龟兔赛跑的多线程程序,单击按键以后龟兔开始赛跑
时间: 2023-05-15 11:07:50 浏览: 117
趣味JAVA-- 一个描述龟兔赛跑的多线程小程序
好的,这是一个经典的多线程问题。我们可以使用 Python 的 threading 模块来实现。首先,我们需要定义两个类,一个是 Turtle 类,一个是 Rabbit 类。这两个类都继承自 threading.Thread 类,以便我们可以在它们的 run() 方法中实现多线程逻辑。下面是完整的代码:
```python
import threading
import time
import random
class Turtle(threading.Thread):
def __init__(self):
super().__init__()
self.position = 0
def run(self):
while self.position < 100:
time.sleep(0.1)
self.position += 1
print("Turtle: %d" % self.position)
class Rabbit(threading.Thread):
def __init__(self):
super().__init__()
self.position = 0
def run(self):
while self.position < 100:
time.sleep(0.1)
if random.randint(0, 1) == 0:
self.position += 1
print("Rabbit: %d" % self.position)
turtle = Turtle()
rabbit = Rabbit()
input("Press Enter to start the race...")
turtle.start()
rabbit.start()
turtle.join()
rabbit.join()
print("Race finished!")
```
在这个程序中,我们定义了 Turtle 和 Rabbit 两个类,它们都有一个 position 属性表示它们当前的位置。在 run() 方法中,我们使用一个 while 循环来模拟赛跑的过程。每次循环,我们让线程休眠 0.1 秒,然后更新自己的位置。对于 Rabbit 类,我们还加入了一个随机因素,以模拟兔子可能会停下来休息的情况。
在主程序中,我们创建了一个 Turtle 对象和一个 Rabbit 对象,并等待用户按下 Enter 键后开始比赛。然后,我们分别启动这两个线程,并等待它们运行结束。最后,我们输出比赛结束的消息。
希望这个程序能够满足你的需求!
阅读全文