python 进程
python 进程
# -*- coding: utf-8 -*-
import multiprocessing
import os
import time
def sing(name,num):
for i in range(num):
print('%s is sing'%(name))
time.sleep(1)
def dance(name,num):
for i in range(num):
print('%s is dance'%(name))
time.sleep(1)
if __name__=='__main__':
#1.创建子进程对象
#args:元组方式传参,kwargs:字典方式传参
sing_process=multiprocessing.Process(target=sing,args=('小明',3,))#元组一个元素一定要用’,‘
dance_process=multiprocessing.Process(target=dance,kwargs={'name':'小红','num':3})#传入的形参要用‘’引起来
#2.使用子进程
sing_process.start()
dance_process.start()
- 获取进程编号
import os
os.getpid()#获取当前进程编号
os.getppid()#获取父进程编号
- 守护主进程(主进程关闭,子进程没执行完也关闭)
sing_process.daemon = True
- 案例(多进程拷贝)
import os
import multiprocessing
source_dir='xxx\xxx'#源文件夹
dest_dir='xxx/xxx'#目标文件夹
#建立目标文件夹
try:
os.mkdir(dest_dir)
except:
print('目标文件夹已存在')
# file_list是源文件夹下的子文件夹和文件的列表
file_list=os.listdir(source_dir)
#遍历文件列表实现拷贝
for file_name in file_list:
sub_process=multiprocessing.Process(target=copy_file,args=(file_name,source_dir,dest_dir))
sub_process.start()
拷贝函数
def copy_file(file_name,source_dir,dest_dir):
#拼接文件完整路径
source_path=os.path.join(source_dir,file_name)
dest_path=os.path.join(dest_dir,file_name)
#打开源文件和目标文件
with open(source_path,'rb') as source_file:
with open(dest_path,'wb') as dest_file:
while True:
data=source_file.read(1024)#每次读1k的数据
if data:
dest_file.write(data)
else:
break
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)