import multiprocessing
'''
# ① 导入进程包
import multiprocessing
# 定义一个music函数
import time
def music(num):
for i in range(num):
print('听音乐')
time.sleep(0.2)
#定义一个coding函数
def coding(t):
for i in range(3):
print('敲代码')
time.sleep(t)
#
# if __name__ =='__main__':
# music()
# coding()
if __name__ == '__main__':
music_process = multiprocessing.Process(target=music,args=(3,))# 元组传参
coding_process = multiprocessing.Process(target=coding,kwargs={'t':0.2})#不定长字典传参
music_process.start()
coding_process.start()
'''
# 获取进程编号 使用os
import os
# pid = os.getpid()
# print(pid)
#
# time.sleep(3)
# 方案2 使用multiprocessing获取pid
# pid = multiprocessing.current_process().pid
# print(pid)
# time.sleep(20)
def work():
print('执行work任务。。。')
# 获取当前进程编号pid
pid = os.getpid()
print(f'work子进程编号为{pid}')
# 获取父进程编号ppid
ppid = os.getpid()
print(f'work父进程编号为{ppid}')
#
# if __name__ == '__main__':
# print(f'main程序执行入口中主进程编号{os.getpid()}')
# sub_process=multiprocessing.Process(target=work)
# sub_process.start()
'''
# 杀掉进程
pid = os.getpid()
# 第一个参数 进程pid 第二个参数 signal和操作系统有关,9是强制删除,15正常结束
os.kill(pid,9)
'''
# 1、进程间不共享全局变量
import multiprocessing
import time
my_list = []
def write_data():
for i in range(3):
my_list.append(i)
print('add:', i)
print(my_list)
def read_data():
print('read_data', my_list)
if __name__ == '__main__':
# 创建写入数据进程
write_process = multiprocessing.Process(target=write_data)
# 创建读取数据进程
read_process = multiprocessing.Process(target=read_data)
# 启动进程执行相关任务
write_process.start()
time.sleep(1)
read_process.start()
# 2、主进程与子进程的结束顺序
import multiprocessing
import time
# 工作函数
def work2():
for i in range(10):
print('工作中...')
time.sleep(0.2)
if __name__ == '__main__':
# 创建子进程
work_process = multiprocessing.Process(target=work2)
# 方案一:守护主进程
# work_process.daemon=True
# 启动子进程
work_process.start()
# 延迟1s
time.sleep(1)
# 方案二 让子进程直接销毁,表示终止执行, 主进程退出之前,把所有的子进程直接销毁就可以了
work_process.terminate()
print('主进程执行完毕')
426python进程
最新推荐文章于 2024-09-27 10:11:28 发布