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中的一些高级编程技巧
Apr 02 Python
Python聊天室实例程序分享
Jan 05 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
python脚本实现验证码识别
Jun 07 Python
Python实现的NN神经网络算法完整示例
Jun 19 Python
学习python可以干什么
Feb 26 Python
python爬虫实现中英翻译词典
Jun 25 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
Python容器使用的5个技巧和2个误区总结
Sep 26 Python
根据tensor的名字获取变量的值方式
Jan 04 Python
Keras中的两种模型:Sequential和Model用法
Jun 27 Python
jupyter notebook快速入门及使用详解
Nov 13 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
30个php操作redis常用方法代码例子
2014/07/05 PHP
yii框架结合charjs实现统计30天数据的方法
2020/04/04 PHP
jQuery 行背景颜色的交替显示(隔行变色)实现代码
2009/12/13 Javascript
js对象的构造和继承实现代码
2010/12/05 Javascript
jquery随机展示头像代码
2011/12/21 Javascript
Prototype源码浅析 Enumerable部分(二)
2012/01/18 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
Javascript核心读书有感之语句
2015/02/11 Javascript
使用jQuery实现Web页面换肤功能的要点解析
2016/05/12 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
javascript中this关键字详解
2016/12/12 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
微信小程序使用modal组件弹出对话框功能示例
2017/11/29 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
2018/01/12 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
探索JavaScript中私有成员的相关知识
2019/06/13 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
JQuery实现简单的复选框树形结构图示例【附源码下载】
2019/07/16 jQuery
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
JavaScript 异步时序问题
2020/11/20 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
python定时按日期备份MySQL数据并压缩
2019/04/19 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
Python vtk读取并显示dicom文件示例
2020/01/13 Python
Django使用Celery加redis执行异步任务的实例内容
2020/02/20 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
Madda Fella官网:美国冒险家服装品牌
2020/01/16 全球购物
酒店销售经理岗位职责
2014/01/31 职场文书
空乘英文求职信
2014/04/13 职场文书
我的梦中国梦演讲稿
2014/04/23 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
情况说明书怎么写
2015/10/08 职场文书
2019年最新证婚词精选集!
2019/06/28 职场文书
MySQL数据库⾼可⽤HA实现小结
2022/01/22 MySQL