Python进程,多进程,获取进程id,给子进程传递参数操作示例

 更新时间:2019年10月11日 10:54:30   作者:houyanhua1  
这篇文章主要介绍了Python进程,多进程,获取进程id,给子进程传递参数操作,结合实例形式分析了Python多进程、父子进程以及进程参数传递相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python进程,多进程,获取进程id,给子进程传递参数操作。分享给大家供大家参考,具体如下:

线程与线程之间共享全局变量,进程之间不能共享全局变量。
进程与进程相互独立  (可以通过socket套接字实现进程间通信,可以通过硬盘(文件)实现进程通信,也可以通过队列(Queue)实现进程通信)

子进程会拷贝复制主进程中的所有资源(变量、函数定义等),所以子进程比子线程耗费资源。

demo.py(多进程):

import threading  # 线程
import time
import multiprocessing  # 进程
def test1():
  while True:
    print("1--------")
    time.sleep(1)
def test2():
  while True:
    print("2--------")
    time.sleep(1)
def main():
  # t1 = threading.Thread(target=test1) # 线程
  # t2 = threading.Thread(target=test2)
  # t1.start()  # 多线程的方式实现多任务
  # t2.start()
  p1 = multiprocessing.Process(target=test1) # 进程 (进程比线程占用资源多)
  p2 = multiprocessing.Process(target=test2)
  p1.start()  # 多进程的方式实现多任务 (进程比线程占用资源多)
  p2.start()
if __name__ == "__main__":
  main()

demo.py(获取进程、父进程id):

import multiprocessing
import os
import time
def test():
  while True:
    print("----in 子进程 pid=%d ,父进程的pid=%d---" % (os.getpid(), os.getppid()))
    time.sleep(1)
def main():
  # os.getpid() 获取当前进程的进程id
  # os.getppid() 获取当前进程的父进程id
  print("----in 主进程 pid=%d---父进程pid=%d----" % (os.getpid(), os.getppid()))
  p = multiprocessing.Process(target=test)
  p.start() # 开启子进程
if __name__ == "__main__":
  main()

demo.py(给子进程传递参数):

import multiprocessing
def test(a, b, c, *args, **kwargs):
  print(a) # 11
  print(b) # 22
  print(c) # 33
  print(args)  # (44, 55, 66, 77, 88)
  print(kwargs) # {'age': 20, 'name': '张三'}
def main():
  p = multiprocessing.Process(target=test, args=(11, 22, 33, 44, 55, 66, 77, 88), kwargs={"name": "张三","age": 20})
  p.start()
if __name__ == "__main__":
  main()

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python进程与线程操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》、《Python+MySQL数据库程序设计入门教程》及《Python常见数据库操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • Python input()函数案例教程

    Python input()函数案例教程

    在 Python 中,input() 函数用于获取用于的输入,并给出提示。input() 函数,总是返回 string 类型,因此,我们可以使用 input() 函数,获取用户输入的任何数据类型 ,这篇文章主要介绍了Python input()函数案例详解,需要的朋友可以参考下
    2023-01-01
  • Python基于callable函数检测对象是否可被调用

    Python基于callable函数检测对象是否可被调用

    这篇文章主要介绍了Python基于callable函数检测对象是否可被调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python3使用requests发闪存的方法

    Python3使用requests发闪存的方法

    requests是一个python 轻量的http客户端库,相比python的标准库要优雅很多。接下来通过本文给大家介绍Python3使用requests发闪存的方法,感兴趣的朋友一起学习吧
    2016-05-05
  • 安装Python和pygame及相应的环境变量配置(图文教程)

    安装Python和pygame及相应的环境变量配置(图文教程)

    下面小编就为大家带来一篇安装Python和pygame及相应的环境变量配置(图文教程)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • python开发入门——列表生成式

    python开发入门——列表生成式

    这篇文章主要介绍了python 列表生成式的相关资料,帮助大家更好的理解和学习python开发,感兴趣的朋友可以了解下
    2020-09-09
  • Python周期任务神器之Schedule模块使用详解

    Python周期任务神器之Schedule模块使用详解

    这篇文章主要为大家详细介绍了Python中的周期任务神器—Schedule模块的安装和初级、进阶使用方法,文中的示例代码讲解详细,需要的可以参考一下
    2022-04-04
  • python统计日志ip访问数的方法

    python统计日志ip访问数的方法

    这篇文章主要介绍了python统计日志ip访问数的方法,涉及Python操作日志文件及正则匹配的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-07-07
  • Python中赋值的含义及说明

    Python中赋值的含义及说明

    这篇文章主要介绍了Python中赋值的含义及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • 深入理解Python爬虫代理池服务

    深入理解Python爬虫代理池服务

    这篇文章主要介绍了Python爬虫代理池服务的相关知识,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python+requests接口自动化框架的实现

    python+requests接口自动化框架的实现

    这篇文章主要介绍了python+requests接口自动化框架的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08

最新评论