并发:交替执行任务(例如单核CPU)
并行:任务数小于等于CPU数量,每个CPU单独负责一个任务
进程:正在运行的程序,索要硬件资源(例如一个实验室)
线程:真正执行程序的单位(例如实验室中的每个打工人)
在Python中,创建子线程可以使用threading包,如下:
注意:
1. 线程之间共享数据,例如全局变量
2. 线程程之间执行无序
import threading
import time
def time_consuming_task1():
for i in range(5):
print(f'I\'m doing task1 {i} now')
time.sleep(1)
def time_consuming_task2():
for i in range(10):
print(f'I\'m doing task2 {i} now')
time.sleep(0.5)
task1 = threading.Thread(target=time_consuming_task1)
task1.start() # 主线程
time_consuming_task2() # 子线程
threading.Thread 的主要参数
group: 必须为None
target: 函数或方法
name: 进程别名
args: 以元组方式传入的参数(按顺序)
kwargs: 以字典方式传参(按参数名)