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写的图片蜘蛛人代码
Aug 27 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 Python
Python常用小技巧总结
Jun 01 Python
python3编码问题汇总
Sep 06 Python
如何高效使用Python字典的方法详解
Aug 31 Python
Python 字符串换行的多种方式
Sep 06 Python
更改Python的pip install 默认安装依赖路径方法详解
Oct 27 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
keras用auc做metrics以及早停实例
Jul 02 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
python+selenium自动化实战携带cookies模拟登陆微博
Jan 19 Python
python编写扎金花小程序的实例代码
Feb 23 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
Search Engine Friendly的URL设计
2006/10/09 PHP
基于php socket(fsockopen)的应用实例分析
2013/06/02 PHP
thinkphp模板用法和内容输出实例
2014/11/28 PHP
php远程下载类分享
2016/04/13 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
js 无提示关闭浏览器页面的代码
2010/03/09 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
很棒的学习jQuery的12个网站推荐
2011/04/28 Javascript
JavaScript语言核心数据类型和变量使用介绍
2013/08/23 Javascript
jquery属性选择器not has怎么写 行悬停高亮显示
2013/11/13 Javascript
jQuery实现div浮动层跟随页面滚动效果
2014/02/11 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
浅析jQuery Mobile的初始化事件
2015/12/03 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
JavaScript中将数组进行合并的基本方法讲解
2016/03/07 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
JavaScript 判断对象中是否有某属性的常用方法
2018/06/14 Javascript
JS中实现隐藏部分姓名或者电话号码的代码
2018/07/17 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
python使用post提交数据到远程url的方法
2015/04/29 Python
python中字符串前面加r的作用
2015/06/04 Python
老生常谈python的私有公有属性(必看篇)
2017/06/09 Python
python2 与 python3 实现共存的方法
2018/07/12 Python
树莓派使用python-librtmp实现rtmp推流h264的方法
2019/07/22 Python
Form表单及django的form表单的补充
2019/07/25 Python
Python中包的用法及安装
2020/02/11 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
英国拳击装备购物网站:RDX Sports
2018/01/23 全球购物
性能测试工程师的面试题
2015/02/20 面试题
财务会计人员岗位职责
2013/11/30 职场文书
美发活动策划书
2014/01/14 职场文书
社区志愿者活动总结
2014/06/26 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
我的中国梦演讲稿高中篇
2014/08/19 职场文书
2014业务员年终工作总结
2014/12/09 职场文书