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好玩的项目—色情图片识别代码分享
Nov 07 Python
python爬取拉勾网职位数据的方法
Jan 24 Python
python删除不需要的python文件方法
Apr 24 Python
python制作图片缩略图
Apr 30 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
详解python实现交叉验证法与留出法
Jul 11 Python
python实现复制文件到指定目录
Oct 16 Python
python中time库的实例使用方法
Oct 31 Python
pytorch之inception_v3的实现案例
Jan 06 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
解决python打开https出现certificate verify failed的问题
Sep 03 Python
python套接字socket通信
Apr 01 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中的生成XML文件的4种方法分享
2012/10/06 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP内核探索之变量
2015/12/22 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
JavaScript this 深入理解
2009/07/30 Javascript
了解了这些才能开始发挥jQuery的威力
2013/10/10 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
jquery实现右侧栏菜单选择操作
2016/03/04 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
BootStrap table使用方法分析
2016/11/08 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
11行JS代码制作二维码生成功能
2018/03/09 Javascript
Angular ng-animate和ng-cookies用法详解
2018/04/18 Javascript
Vue SPA单页应用首屏优化实践
2018/06/28 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
vue实现购物车案例
2020/05/30 Javascript
Python最基本的输入输出详解
2015/04/25 Python
Python使用Pickle库实现读写序列操作示例
2018/06/15 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python multiprocessing模块用法及原理介绍
2019/08/20 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
使用Matplotlib绘制不同颜色的带箭头的线实例
2020/04/17 Python
快速解释如何使用pandas的inplace参数的使用
2020/07/23 Python
Python如何输出警告信息
2020/07/30 Python
波兰灯具、照明和LED购物网站:Lampy.pl
2019/03/11 全球购物
英文版网络工程师求职信
2013/10/28 职场文书
安全大检查反思材料
2014/01/31 职场文书
《在家里》教后反思
2014/03/01 职场文书
Python+Appium新手教程
2021/04/17 Python
OpenCV项目实践之停车场车位实时检测
2022/04/11 Python
openstack云计算keystone组件工作介绍
2022/04/20 Servers