1. 多任务基本介绍
1.1 程序中模拟多任务
import time
def sing():
for i in range(3):
print('正在唱歌..%d' % i)
time.sleep(1)
def dance():
for i in range(3):
print('正在跳舞..%d' % i)
time.sleep(1)
if __name__ == '__main__':
sing()
dance()
2. 主线程和子线程的执行关系
- 主线程等子线程执行结束后再结束
- join()等子线程结束后,主线程继续执行
- setDaemon()守护线程,不会等待子线程结束
import threading
import time
def demo():
print('hello girl')
time.sleep(1)
if __name__ == '__main__':
for i in range(5)
t = threading.Thread(target=demo)
t.srart()
threading.enumerate() #查看线程数量
3. 验证子线程的执行与创建
当调用thread时不会创建线程,调用实例化方法start()时才会开始进程以及创建进程
import threading
import time
class A(threading.Thread):
def __init__(self, name):
super().__init__(name=name)
def run(self):
for i in range(5):
print(i)
if __name__ == '__main__':
t = A('test_name')
t.start()
4. 线程之间的通信(多线程共享全局变量)
修改全局变量时需用global声明,线程是共享全局变量
- 多线程参数-args: threading.Thread(target=test, args=(num, ))