python中多进程的使用
进程(Process)是资源分配的最小单位,它是操作系统进行资源分配的基本单位,通俗理解:一个正在运行的程序就是一个进程。例如:正在运行的QQ、微信等他们都是一个进程。
注意:一个程序运行后至少有一个进程
多进程可以完成多任务,每个进程就好比一家独立的公司,每个公司都各自在运营,每个进程也各自在运行,执行各自的任务。![]
多进程的使用:
"""
多进程的基本使用
学习目标:能够使用多进程同时执行两个不同的任务函数
"""
import time
导入进程包
import multiprocessing
学习函数
def study():
for i in study(5):
print('学习中...')
time.sleep(1)
玩耍函数
def paly():
for i in range(5):
print('玩耍中...')
time.sleep(1)
if name == 'main':
# 创建一个进程,执行 dance 函数
# 注意:target指定的是函数名或方法名,切忌!!!不要再函数名或方法名后加()
study_process = multiprocessing.Process(target=study)
# 再创建一个进程,执行 sing 函数
play_process = multiprocessing.Process(target=play)
# 启动这两个进程
study_process.start()
play_process.start()
进程使用的注意点介绍:
1)进程之间不共享全局变量
注意:创建子进程时,子进程会把主进程的东西全部复制一份
2)主进程会等待所有的子进程执行结束再结束
注意点1:进程之间不共享全局变量
import multiprocessing
import time
定义全局变量
g_list = []
添加数据的函数
def add_data():
for i in range(5):
g_list.append(i)
print('add:', i)
time.sleep(0.2)
print('add_data:', g_list)
读取数据的函数
def read_data():
print('read_data:', g_list)
if name == 'main':
# 创建添加数据的子进程
add_data_process = multiprocessing.Process(target=add_data)
# 创建读取数据的子进程
read_data_process = multiprocessing.Process(target=read_data)
# 启动添加数据子进程
add_data_process.start()
# 主进程等待 add_data_process 执行完成,再向下继续执行
add_data_process.join()
# 启动读取数据子进程
read_data_process.start()
print('main:', g_list)
注意点2:主进程会等待所有的子进程执行结束再结束
import multiprocessing
import time
任务函数
def task():
for i in range(20):
print('任务执行中...')
time.sleep(0.2)
if name == 'main':
# 创建子进程并启动
sub_process = multiprocessing.Process(target=task)
sub_process.start()
# 主进程延时 1s
time.sleep(1)
print('主进程结束!')
# 退出程序
exit()
下篇继续!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端