Python多线程有趣的例子——龟兔赛跑

import threading,time
print('turtle','   rabit')
def rabit():
	x=0
	fuck=0
	while(x<100):
		if(x==40 and fuck==0):
			for i in range(11):
				print("          ZZZZZ")
				time.sleep(0.5)
			fuck=1
			print("          fuck!!!")
		else:
			if(fuck):
				x+=12
			else:
				x+=8
			time.sleep(0.5)
			print("          run",x,'m')
	print('rabit win!!!')
def turtle():
	x=0
	while(x<100):
		x+=5
		time.sleep(0.5)
		print("run",x,'m')
	print('turtle win!!!')
threads=[]
#定义线程池
t1=threading.Thread(target=rabit)
t2=threading.Thread(target=turtle)
#定义目标函数的线程
threads.append(t1)
threads.append(t2)
#将目标线程添加到要运行的多线程中
for t in threads:
	t.setDaemon(True)
	t.start()
'''
	setDaemon(True)将线程声明为守护线程,必须在start() 方法调用之前设置,如果不设置为守护线程程序会被无限挂起。
	将t1,t2都设为守护线程,即为两个线程都执行完毕时才退出,或者说等最慢的动物跑完时比赛才结束。
	调用start()方法启动线程
'''
t.join()

Python的多线程可同时运行多组代码

运行结果:

turtle    rabit
          run 8 m
run 5 m
          run 16 m
run 10 m
          run 24 m
run 15 m
          run 32 m
run 20 m
          run 40 m
          ZZZZZ
run 25 m
          ZZZZZ
run 30 m
          ZZZZZ
run 35 m
          ZZZZZ
run 40 m
          ZZZZZ
run 45 m
          ZZZZZ
run 50 m
          ZZZZZ
run 55 m
          ZZZZZ
run 60 m
          ZZZZZ
run 65 m
          ZZZZZ
run 70 m
          ZZZZZ
run 75 m
          fuck!!!
run 80 m
          run 52 m
run 85 m
          run 64 m
run 90 m
          run 76 m
run 95 m
          run 88 m
run 100 m
turtle win!!!

 

好的,我来给你讲一下多线程龟兔赛跑的实现。 首先,我们需要创建两个线程,一个代表乌龟,一个代表兔子。每个线程都有一个速度参数,代表它们每次前进的距离。同时,我们需要创建一个共享变量,代表比赛的距离。比赛开始时,乌龟和兔子同时出发,不断地向前移动,直到比赛结束。 在比赛过程中,我们需要不断地更新比赛距离,并且判断是否有一方到达终点。如果有一方到达终点,我们就可以停止比赛。此外,为了避免线程冲突,我们需要使用互斥锁来保护共享变量。 下面是一个简单的多线程龟兔赛跑的代码示例: ```python import threading import time import random # 定义比赛距离 distance = 100 # 定义乌龟线程 class Turtle(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.speed = 1 def run(self): global distance while distance > 0: # 乌龟前进 distance -= self.speed print("乌龟跑了1米,距离终点还有{}米".format(distance)) time.sleep(0.1) print("乌龟到达终点,比赛结束!") # 定义兔子线程 class Rabbit(threading.Thread): def __init__(self): threading.Thread.__init__(self) self.speed = 2 def run(self): global distance while distance > 0: # 兔子前进 distance -= self.speed print("兔子跑了2米,距离终点还有{}米".format(distance)) time.sleep(0.1) print("兔子到达终点,比赛结束!") # 创建乌龟和兔子线程,并启动比赛 turtle = Turtle() rabbit = Rabbit() turtle.start() rabbit.start() ``` 希望这个简单的示例能够帮助你理解多线程龟兔赛跑的实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值