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写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
Python安装第三方库的3种方法
Jun 21 Python
浅谈python 四种数值类型(int,long,float,complex)
Jun 08 Python
Python用 KNN 进行验证码识别的实现方法
Feb 06 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
Dec 24 Python
python下载微信公众号相关文章
Feb 26 Python
python如何删除文件中重复的字段
Jul 16 Python
Python上下文管理器类和上下文管理器装饰器contextmanager用法实例分析
Nov 07 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
Python如何解决secure_filename对中文不支持问题
Jul 16 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图片上传代码
2013/11/04 PHP
php中文验证码实现示例分享
2014/01/12 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
基于jQuery的表格操作插件
2010/04/22 Javascript
Js 冒泡事件阻止实现代码
2013/01/27 Javascript
javascript移动开发中touch触摸事件详解
2016/03/18 Javascript
JavaScript中split与join函数的进阶使用技巧
2016/05/03 Javascript
jQuery实现页面点击后退弹出提示框的方法
2016/08/24 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
js实现简单模态框实例
2018/11/16 Javascript
在vue项目中优雅的使用SVG的方法实例详解
2018/12/03 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
小程序实现列表展开收起效果
2020/07/29 Javascript
python发送邮件示例(支持中文邮件标题)
2014/02/16 Python
python实现linux服务器批量修改密码并生成execl
2014/04/22 Python
Python中关于字符串对象的一些基础知识
2015/04/08 Python
Python采用Django制作简易的知乎日报API
2016/08/03 Python
python图形用户接口实例详解
2019/12/16 Python
Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告
2021/01/27 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
大学生毕业自我鉴定
2013/11/06 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
2014年社区个人工作总结
2014/12/02 职场文书
给老师的感谢信
2015/01/20 职场文书
团代会开幕词
2015/01/28 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
浅谈sql_@SelectProvider及使用注意说明
2021/08/04 Java/Android
浅谈MySQL中的六种日志
2022/03/23 MySQL