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计算三角函数之asin()方法的使用
May 15 Python
Python2.x利用commands模块执行Linux shell命令
Mar 11 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
Python基于更相减损术实现求解最大公约数的方法
Apr 04 Python
详解Python中的测试工具
Jun 09 Python
Django Celery异步任务队列的实现
Jul 24 Python
python实现车牌识别的示例代码
Aug 05 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
Aug 12 Python
python通过SSH登陆linux并操作的实现
Oct 10 Python
Selenium之模拟登录铁路12306的示例代码
Jul 31 Python
解决Python中的modf()函数取小数部分不准确问题
May 28 Python
python开发制作好看的时钟效果
May 02 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
php实现singleton()单例模式实例
2014/11/06 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
php提交表单时保留多个空格及换行的文本样式的方法
2017/06/20 PHP
防止xss和sql注入:JS特殊字符过滤正则
2013/04/18 Javascript
Jquery封装tab自动切换效果的具体实现
2013/07/13 Javascript
禁止选中文字兼容IE、Chrome、FF等
2013/09/04 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
招聘网站基于jQuery实现自动刷新简历
2015/05/10 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
js+html5实现手机九宫格密码解锁功能
2018/07/30 Javascript
Vue之mixin全局的用法详解
2018/08/22 Javascript
vue封装一个简单的div框选时间的组件的方法
2019/01/06 Javascript
vue操作动画的记录animate.css实例代码
2019/04/26 Javascript
javascript中this的用法实践分析
2019/07/29 Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
2019/08/09 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
vue element-ui中table合计指定列求和实例
2020/11/02 Javascript
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
python对离散变量的one-hot编码方法
2018/07/11 Python
对python 操作solr索引数据的实例详解
2018/12/07 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
python进度条显示-tqmd模块的实现示例
2020/08/23 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
用友笔试题目
2016/10/25 面试题
物流经理自我评价
2013/09/23 职场文书
公司接待方案
2014/03/08 职场文书
单位委托函范文
2015/01/29 职场文书
博士生专家推荐信
2015/03/25 职场文书
2015年测量员工作总结
2015/05/23 职场文书
Python实现信息管理系统
2022/06/05 Python