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 相关文章推荐
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
Sep 21 Python
Python标准库inspect的具体使用方法
Dec 06 Python
python爬虫实例详解
Jun 19 Python
python读取文本绘制动态速度曲线
Jun 21 Python
python3.6.3转化为win-exe文件发布的方法
Oct 31 Python
Python中的heapq模块源码详析
Jan 08 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
python binascii 进制转换实例
Jun 12 Python
python爬虫神器Pyppeteer入门及使用
Jul 13 Python
python输出pdf文档的实例
Feb 13 Python
Python爬虫之Selenium实现窗口截图
Dec 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
PHP实现文件安全下载
2006/10/09 PHP
WML,Apache,和 PHP 的介绍
2006/10/09 PHP
php图片验证码代码
2008/03/27 PHP
PHP常用正则表达式集锦
2014/08/17 PHP
PHP使用静态方法的几个注意事项
2014/09/16 PHP
PHP实现获取FLV文件的时间
2015/02/10 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
PHP入门教程之PHP操作MySQL的方法分析
2016/09/11 PHP
浅谈ThinkPHP中initialize和construct的区别
2017/04/01 PHP
jQuery的Ajax时无响应数据的解决方法
2010/05/25 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
JavaScript异步加载问题总结
2018/02/17 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
Jquery如何使用animation动画效果改变背景色的代码
2020/07/20 jQuery
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python DataFrame获取行数、列数、索引及第几行第几列的值方法
2018/04/08 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python 发送和接收ActiveMQ消息的实例
2019/01/30 Python
Python中print和return的作用及区别解析
2019/05/05 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
Pycharm使用之设置代码字体大小和颜色主题的教程
2019/07/12 Python
使用Python脚本从文件读取数据代码实例
2020/01/19 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
Selenium获取登录Cookies并添加Cookies自动登录的方法
2020/12/04 Python
2014信息技术专业毕业生自我评价
2014/01/17 职场文书
酒店营销策划方案
2014/02/07 职场文书
普通大学毕业生自荐信范文
2014/02/23 职场文书
广播节目策划方案
2014/05/23 职场文书
2014年电教工作总结
2014/12/19 职场文书
情感电台广播稿
2015/08/18 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
如何利用map实现Nginx允许多个域名跨域
2021/03/31 Servers
python Polars库的使用简介
2021/04/21 Python
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS