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


Posted in Python onOctober 11, 2019

本文实例讲述了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进程,多进程,获取进程id,给子进程传递参数操作示例

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

Python 相关文章推荐
python创建线程示例
May 06 Python
python使用smtplib模块通过gmail实现邮件发送的方法
May 08 Python
python脚本实现xls(xlsx)转成csv
Apr 10 Python
Python2.7读取PDF文件的方法示例
Jul 13 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
书单|人生苦短,你还不用python!
Dec 29 Python
Python3中的列表生成式、生成器与迭代器实例详解
Jun 11 Python
Python实现简单石头剪刀布游戏
Jan 20 Python
python实现UDP协议下的文件传输
Mar 20 Python
如何通过python检查文件是否被占用
Dec 18 Python
Python time库的时间时钟处理
May 02 Python
python 进阶学习之python装饰器小结
Sep 04 Python
Python中的延迟绑定原理详解
Oct 11 #Python
python pycharm的安装及其使用
Oct 11 #Python
详解Python3迁移接口变化采坑记
Oct 11 #Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
Oct 11 #Python
Pycharm 2019 破解激活方法图文详解
Oct 11 #Python
python 扩展print打印文件路径和当前时间信息的实例代码
Oct 11 #Python
python脚本调用iftop 统计业务应用流量的思路详解
Oct 11 #Python
You might like
sony ICF-2010 拆解与改装
2021/03/02 无线电
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
php转换颜色为其反色的方法
2015/04/27 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
javascript数字数组去重复项的实现代码
2010/12/30 Javascript
如何正确使用javascript 来进行我们的程序开发
2014/06/23 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
JavaScript日期类型的一些用法介绍
2015/03/02 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JQuery实现带排序功能的权限选择实例
2015/05/18 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
vue.js实现备忘录功能的方法
2017/07/10 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
vue2.x数组劫持原理的实现
2020/04/19 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
列举Python中吸引人的一些特性
2015/04/09 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
Python配置虚拟环境图文步骤
2019/05/20 Python
详解python和matlab的优势与区别
2019/06/28 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
html5 Canvas画图教程(7)—canvas里画曲线之quadraticCurveTo方法
2013/01/09 HTML / CSS
新西兰最大的在线设计师眼镜店:SmartBuyGlasses新西兰
2017/10/20 全球购物
如何实现jdbc性能优化
2012/07/30 面试题
乔迁宴答谢词
2014/01/21 职场文书
比赛口号大全
2014/06/10 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
党的群众路线对照检查材料思想汇报
2014/09/25 职场文书
2014年店长工作总结
2014/11/17 职场文书
个人党性分析总结
2015/03/05 职场文书
公文写作指导之倡议书!
2019/07/03 职场文书
《哪吒之魔童降世》观后感:世上哪有随随便便的成功
2019/11/08 职场文书