用到模块threading
简单示例如下:
import time
import threading
def sing():
"""唱歌5秒钟"""
for i in range(5):
print("---正在唱歌---")
time.sleep(1)
def dance():
"""跳舞5秒钟"""
for i in range(5):
print("---正在跳舞---")
time.sleep(1)
def main():
t1 = threading.Thread(target=sing)
t2 = threading.Thread(target=dance)
t1.start() # start() 即让线程开始执行
t2.start()
main()
并行:真的多任务
并发:假的多任务
length = len(threading.enumerate()) # 查看当前程序运行所创建的线程数 # 当长度为1时,意为子线程都完成了任务,则此时可以结束主线程 # 若主线程结束了,则所有子线程都会直接结束
注:当调用Thread的时候,不会创建线程
当调用Thread创建出来的实例对象的start方法的时候,才会去创建线程以及让这个线程开始运行
元组拆包小技巧:
a, b = (11,22) 实际:a=11,b=22
a = [11,22,33] b = enumerate(a) for i,name in b: print(i,num)通过继承Thread类完成创建线程
代码示例:
import threading
import time
class MyThread(threading.Thread):
def run(self)
for i in range(3):
time.sleep(1)
print("这是%s" % i)
if __name__ == '__main__':
t = MyThread()
t.start() # 调用start()的时候会自动的执行类里面的run方法
多进程,协程等有空再完善



