python多线程完成多任务
2021-01-18 本文已影响0人
涓涓自然卷
知识要点
1、导入线程模块:import threading
2、创建子线程并指定执行任务:sub_thread = threading.Thread(target=任务名)
3、启动线程执行任务:sub_thread.start()
代码🌰
import time
import threading
# 编写代码
def coding():
for i in range(3):
print("coding...")
time.sleep(0.2)
# 听音乐
def music():
for i in range(3):
print('music...')
time.sleep(0.2)
if __name__ == '__main__':
# coding()
# music()
coding_thread = threading.Thread(target=coding)
music_thread = threading.Thread(target=music)
# 启动子线程
coding_thread.start()
music_thread.start()
运行结果
多线程完成多任务.png线程执行带有参数的任务
线程执行带有参数的任务传参有两种方式:
- 1、元组方式传参:元组方式传参一定要和参数的顺序保持一致
- 2、字典方式传参:字典方式传参字典中的key一定要和参数名保持一致。
- 🌰
import time
import threading
# 编写代码
def coding(num):
for i in range(num):
print("coding...")
time.sleep(0.2)
# 听音乐
def music(count):
for i in range(count):
print('music...')
time.sleep(0.2)
if __name__ == '__main__':
# coding()
# music()
# 创建线程对象
coding_thread = threading.Thread(target=coding, args=(3,))
music_thread = threading.Thread(target=music, kwargs={"count": 3})
# 启动子线程
coding_thread.start()
music_thread.start()
运行结果
带参数.png设置守护主线程的方式:
- 这只守护主线程的目的是主线程退出子线程销毁,不让主线程再等待子线程去执行。
- 设置守护主线程有两种方式:
1、coding_thread = threading.Thread(target=coding, args=(3,), daemon=True)
coding_thread = threading.Thread(target=coding, args=(3,), daemon=True)
2、线程对象.setDaemon(True)
coding_thread.setDaemon(True)
music_thread.setDaemon(True)
执行效果
守护线程.png线程和进程对比:
关系对比.png优缺点对比.png