day35 python多线程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了day35 python多线程相关的知识,希望对你有一定的参考价值。

Python多线程

 

 

多线程-threading

pythonthread模块是?较底层的模块, pythonthreading
模块是对thread做了?些包装的, 可以更加?便的被使?
1. 使?threading模块

单线程执? 

1 import time
2 def saySorry():
3     print("亲爱的, 我错了, 我能吃饭了吗? ")
4     time.sleep(1)
5 if __name__ == "__main__":
6     for i in range(5):
7         saySorry()

运?结果: 打印了五次花了五秒

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

Process finished with exit code 0

  

多线程执? :一起打印,花了一秒

 1 #coding=utf-8
 2 import threading
 3 import time
 4 def saySorry():
 5     print("亲爱的, 我错了, 我能吃饭了吗? ")
 6     time.sleep(1)
 7 
 8 if __name__ == "__main__":
 9     for i in range(5):
10         t = threading.Thread(target=saySorry)
11         t.start() #启动线程, 即让线程开始执?

 

说明

1. 可以明显看出使?了多线程并发的操作, 花费时间要短很多
2. 创建好的线程, 需要调? start() ?法来启动

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

 

 

 1 #coding=utf-8
 2 import threading
 3 from time import sleep,ctime
 4 
 5 
 6 def sing():
 7     for i in range(3):
 8         print("正在唱歌...%d"%i)
 9         sleep(1)
10 
11 
12 def dance():
13     for i in range(3):
14         print("正在跳舞...%d"%i)
15         sleep(1)
16 
17 
18 if __name__ == __main__:
19     print(---开始---:%s%ctime())
20     t1 = threading.Thread(target=sing)
21     t2 = threading.Thread(target=dance)
22     t1.start()
23     t2.start()
24     #sleep(5) # 屏蔽此?代码, 试试看, 程序是否会??结束?
25     print(---结束---:%s%ctime())

 

3. 查看线程数量

 

 1 #coding=utf-8
 2 import threading
 3 from time import sleep,ctime
 4 
 5 
 6 def sing():
 7     for i in range(3):
 8         print("正在唱歌...%d"%i)
 9         sleep(1)
10 
11 
12 def dance():
13     for i in range(3):
14         print("正在跳舞...%d"%i)
15         sleep(1)
16 
17 
18 if __name__ == __main__:
19     print(---开始---:%s%ctime())
20     t1 = threading.Thread(target=sing)
21     t2 = threading.Thread(target=dance)
22     t1.start()
23     t2.start()
24 
25     while True:
26         length = len(threading.enumerate())
27         print(当前运?的线程数为: %d%length)
28         if length<=1:
29             break
30     sleep(0.5)

 







以上是关于day35 python多线程的主要内容,如果未能解决你的问题,请参考以下文章

Python开发基础-Day29多线程

python小白学习记录 多线程爬取ts片段

Python开发基础-Day31 Event对象队列和多进程基础

Python开发Day9(多线程多进程)

Python Day36 python多线程

day_6.22python多线程