编程语言应用

首页 » 常识 » 常识 » python核心编程之多线程教程thr
TUhjnbcbe - 2025/2/27 17:48:00

多线程-threading

python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用

1.使用threading模块

单线程执行

#coding=utf-8

importtime

defsaySorry():

print(亲爱的,我错了,我能吃饭了吗?)

time.sleep(1)

if__name__==__main__:

foriinrange(5):

saySorry()

运行结果:

多线程执行

#coding=utf-8

importthreading

importtime

defsaySorry():

print(亲爱的,我错了,我能吃饭了吗?)

time.sleep(1)

if__name__==__main__:

foriinrange(5):

t=threading.Thread(target=saySorry)

t.start()#启动线程,即让线程开始执行

运行结果:

说明

可以明显看出使用了多线程并发的操作,花费时间要短很多

创建好的线程,需要调用start()方法来启动

2.主线程会等待所有的子线程结束后才结束

#coding=utf-8

importthreading

fromtimeimportsleep,ctime

defsing():

foriinrange(3):

print(正在唱歌...%d%i)

sleep(1)

defdance():

foriinrange(3):

print(正在跳舞...%d%i)

sleep(1)

if__name__==__main__:

print(---开始---:%s%ctime())

t1=threading.Thread(target=sing)

t2=threading.Thread(target=dance)

t1.start()

t2.start()

#sleep(5)#屏蔽此行代码,试试看,程序是否会立马结束?

print(---结束---:%s%ctime())

3.查看线程数量

#coding=utf-8

importthreading

fromtimeimportsleep,ctime

defsing():

foriinrange(3):

print(正在唱歌...%d%i)

sleep(1)

defdance():

foriinrange(3):

print(正在跳舞...%d%i)

sleep(1)

if__name__==__main__:

print(---开始---:%s%ctime())

t1=threading.Thread(target=sing)

t2=threading.Thread(target=dance)

t1.start()

t2.start()

whileTrue:

length=len(threading.enumerate())

print(当前运行的线程数为:%d%length)

iflength=1:

break

sleep(0.5)

1
查看完整版本: python核心编程之多线程教程thr