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()

下篇继续!

posted @   小君很好看  阅读(421)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示