开发者学堂课程【Python入门 2020年版:多线程实现多任务】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10465
多线程实现多任务
内容介绍
一. 多任务
二. 示例代码及注释
三. 说明
一.多任务
1.多任务介绍
在现实生活中,有很多的场景中的事情是同时进行的,比如跳舞和唱歌是同时进行的。
Python 里执行多任务:多线程、多进程、多进程+多线程
在程序中,可以使用代码来模拟唱歌和跳舞的功能:
from time import sleep
def sing():
for i in range(3):
print
("正在唱歌...%d"%i) sleep(1)
def dance():
for i in range(3):
phint
("正在跳舞...%d"%i) sleep(1)
if __name_==_main__":
sing
()#唱歌
dance
()#跳舞
I print
('我正在跳舞')
二. 示例代码及注释
1.原始代码
def dance():
for i in range(50):
def sing():
for i in range(50):
print(
'我正在唱歌')
sing()
#唱歌
dance()
#跳舞
此时是先打印跳舞50次后打印唱歌50次
想要两个动作同时做时可以用线程来执行
例如
t1=threading.Thread(target=dance)
写入线程后并启动线程可以看到运行结果是唱歌跳舞交替进行的但是并没有什么规律性可以加入time.sleep(0.2)在跳舞前歇息0.2秒运行可以发现打印出的唱歌与跳舞比较有规律。但是不能切换成想要的规律。
2.最终代码及注释
import threading,time
def dance():
for i in range(50):
time.sleep(0.2)
//跳舞之前歇0.2秒
I print
('我正在跳舞')
def sing():
for i in range(50):
print
('我正在唱歌')
#多个任务同时执行
#Python里执行多任务:多线程、多进程、多进程+多线程
# dance()
# singe()
#target需要的是一个函数,用来指定线程需要执行的任务t1=threading.Thread(target=dance)
#创建了线程1
t2=threading.Thread(target=sing))
#创建了线程2
#启动线程
t1.start()
t2.start()
三.说明
1.程序运行时至少有一个线程,这个线程叫主线程再在主线程上拉两个子线程,这两个子线程可以同时进行,但并不是真的同时进行,而是在同一时间段上只做一件事。
2.多任务思想为两个任务两个任务不是同时进行而是 cpu 交替进行,无法决定 cup的规律。