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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
django js实现部分页面刷新的示例代码
May 28 Python
python使用tornado实现简单爬虫
Jul 28 Python
Python面向对象类编写细节分析【类,方法,继承,超类,接口等】
Jan 05 Python
浅谈python中get pass用法
Mar 19 Python
python多线程+代理池爬取天天基金网、股票数据过程解析
Aug 13 Python
Django框架 querySet功能解析
Sep 04 Python
PyTorch 随机数生成占用 CPU 过高的解决方法
Jan 13 Python
Django操作session 的方法
Mar 09 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
Python实现猜年龄游戏代码实例
Mar 25 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 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来自动调用不同服务器上的flash
2006/10/09 PHP
Zend Studio (eclipse)使用速度优化方法
2011/03/23 PHP
浅谈mysql_query()函数的返回值问题
2016/09/05 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
javascript应用:Iframe自适应其加载的内容高度
2007/04/10 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
理解Javascript_12_执行模型浅析
2010/10/18 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
AngularJS表单详解及示例代码
2016/08/17 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
微信小程序公用参数与公用方法用法示例
2019/01/09 Javascript
图文讲解用vue-cli脚手架创建vue项目步骤
2019/02/12 Javascript
python实现备份目录的方法
2015/08/03 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
python使用SQLAlchemy操作MySQL
2020/01/02 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
Python使用grequests并发发送请求的示例
2020/11/05 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
M.M.LaFleur官网:美国职业女装品牌
2020/10/27 全球购物
某公司部分笔试题
2013/11/05 面试题
焊接专业毕业生求职信
2013/10/01 职场文书
医学生个人求职信范文
2014/02/07 职场文书
大课间体育活动方案
2014/03/12 职场文书
高中毕业生登记表自我鉴定范文
2014/03/18 职场文书
单位员工收入证明样本
2014/10/09 职场文书
二审代理词范文
2015/05/25 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang
提高系统的吞吐量解决数据库重复写入问题
2022/04/23 MySQL
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL