在了解多线程前先给大家介绍下并发和并行:
并发:多个任务一起执行 在多任务之间快速切换处理 任务数量大于cpu核数
并行:一个cpu核处理一个任务,多个cpu核同时处理多个任务 任务数量等于或者小于cpu核数
再介绍下同步和异步 :
同步:指线程在访问某一资源时,获得了资源的返回结果之后才会执行其他操作(先做某件事,再做某件事)
异步: 与同步相对,是指线程在访问某一资源时,无论是否取得返回结果,都进行下一步操作;当有了资源返回结果时 系统自会通知线程
在Python中,使用threading库来创建多线程
import threading def func1(): for i in range(6): time.sleep(1) def func2(): for i in range(5): time.sleep(1) # 创建线程对象 t2 = threading.Thread(target=func2) # target = 方法名 t1 = threading.Thread(target=func1, name='线程1') # 可以设置线程名字 # start 启动线程活动 # join([time]) 设置主线程会等待time秒后再往下执行,time默认为子线程结束,多个子线程之间设置的值会增加 # isAlive 返回线程是否活动的 # getName() 返回线程名 # setName() 设置线程名 a = time.time() t2.start() # 开始执行线程2 t1.start() # 开始执行线程1 # 让主线程等待子线程执行完后再继续往下执行 同步的概念 t2.join() t1.join() b = time.time() c = b - a print(c) threading.currentThread() # 返回当前执行的线程 threading.enumerate() # 返回正在运行的所有线程(list) 正在运行指:启动后、结束前,不包括了启动前和终止后的线程 threading.activeCount() # 返回正在运行的线程数量