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 greenlet实现原理和使用示例
Sep 24 Python
Python中有趣在__call__函数
Jun 21 Python
Python中模块pymysql查询结果后如何获取字段列表
Jun 05 Python
python3爬取数据至mysql的方法
Jun 26 Python
Python参数类型以及常见的坑详解
Jul 08 Python
python使用writerows写csv文件产生多余空行的处理方法
Aug 01 Python
python3 selenium自动化 下拉框定位的例子
Aug 23 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
python3 assert 断言的使用详解 (区别于python2)
Nov 27 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
Python实现随机生成迷宫并自动寻路
Jun 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
php 文本文件的读取效率
2012/02/10 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
2013/11/11 PHP
PHP获取文件的MD5值并判断是否被修改的例子
2014/06/19 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
PHP 读取大文件并显示的简单实例(推荐)
2016/08/12 PHP
javascript RadioButtonList获取选中值
2009/04/09 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
2013/11/11 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
Jquery设置attr的disabled属性控制某行显示或者隐藏
2014/09/25 Javascript
js实现文字跟随鼠标移动而移动的方法
2015/02/28 Javascript
jQuery使用attr()方法同时设置多个属性值用法实例
2015/03/26 Javascript
跟我学习javascript的基本类型和引用类型
2015/11/16 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
浅谈Node.js:Buffer模块
2016/12/05 Javascript
vue router路由嵌套不显示问题的解决方法
2017/06/17 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
nodejs实现OAuth2.0授权服务认证
2017/12/27 NodeJs
Vue.js实现的计算器功能完整示例
2018/07/11 Javascript
JavaScript栈和队列相关操作与实现方法详解
2018/12/07 Javascript
微信小程序--特定区域滚动到顶部时固定的方法
2019/04/28 Javascript
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
Python全局变量操作详解
2015/04/14 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
2019/08/08 Python
Python根据字符串调用函数过程解析
2020/11/05 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
专业毕业生个性的自我评价
2013/10/03 职场文书
迎元旦广播稿
2014/02/22 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
酒店开业策划方案
2014/06/02 职场文书
党课心得体会范文
2014/09/09 职场文书
python基于opencv批量生成验证码的示例
2021/04/28 Python
Win11快速关闭所有广告推荐
2022/04/19 数码科技