栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

426python进程

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

426python进程

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('主进程执行完毕')


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/844228.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号