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远程桌面协议RDPY安装使用介绍
Apr 15 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
Django中cookie的基本使用方法示例
Feb 03 Python
创建pycharm的自定义python模板方法
May 23 Python
Django1.9 加载通过ImageField上传的图片方法
May 25 Python
python isinstance函数用法详解
Feb 13 Python
Window系统下Python如何安装OpenCV库
Mar 05 Python
Django模型中字段属性choice使用说明
Mar 30 Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 Python
Tensorflow与Keras自适应使用显存方式
Jun 22 Python
python爬取新闻门户网站的示例
Apr 25 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
php的sprintf函数的用法 控制浮点数格式
2014/02/14 PHP
destoon在360浏览器下出现用户被强行注销的解决方法
2014/06/26 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
编写可维护面向对象的JavaScript代码[翻译]
2011/02/12 Javascript
js判断屏幕分辨率的代码
2013/07/16 Javascript
jquery模拟SELECT下拉框取值效果
2013/10/23 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
jQuery获得内容和属性方法及示例
2013/12/02 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
JS+CSS实现经典的左侧竖向滑动菜单效果
2015/09/23 Javascript
原生JavaScript实现Ajax的方法
2016/04/07 Javascript
5个最顶级jQuery图表类库插件【jquery插件库】
2016/05/05 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
微信小程序 富文本转文本实例详解
2016/10/24 Javascript
理解JavaScript原型链
2016/10/25 Javascript
详解vue-router2.0动态路由获取参数
2017/06/14 Javascript
JS基于for语句编写的九九乘法表示例
2018/01/04 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
优雅的elementUI table单元格可编辑实现方法详解
2018/12/23 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
bootstrap实现tab选项卡切换
2020/08/09 Javascript
利用python求相邻数的方法示例
2017/08/18 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
python生成ppt的方法
2018/06/07 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
opencv实现简单人脸识别
2021/02/19 Python
python+Selenium自动化测试——输入,点击操作
2020/03/06 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
基于python实现操作redis及消息队列
2020/08/27 Python
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
勤奋学习演讲稿
2014/05/10 职场文书
村容村貌整治方案
2014/05/21 职场文书
大学生实训报告总结
2014/11/05 职场文书
漫画「日和酱的要求是绝对的」第3卷封面公开
2022/03/21 日漫