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解决字典中的值是列表问题的方法
Mar 04 Python
初步解析Python中的yield函数的用法
Apr 03 Python
Python实现利用最大公约数求三个正整数的最小公倍数示例
Sep 30 Python
TensorFlow在MAC环境下的安装及环境搭建
Nov 14 Python
使用python爬虫实现网络股票信息爬取的demo
Jan 05 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
解决Python3中的中文字符编码的问题
Jul 18 Python
Python用5行代码写一个自定义简单二维码
Oct 21 Python
Python使用combinations实现排列组合的方法
Nov 13 Python
Django自带日志 settings.py文件配置方法
Aug 30 Python
Django跨域请求原理及实现代码
Nov 14 Python
利用python为PostgreSQL的表自动添加分区
Jan 18 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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php 取得瑞年与平年的天数的代码
2009/08/10 PHP
php 3行代码的分页算法(求起始页和结束页)
2009/10/21 PHP
php实现的仿阿里巴巴实现同类产品翻页
2009/12/11 PHP
php 判断服务器操作系统的类型
2014/02/17 PHP
php获得客户端浏览器名称及版本的方法(基于ECShop函数)
2015/12/23 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
PHP耦合设计模式实例分析
2018/08/08 PHP
为原生js Array增加each方法
2012/04/07 Javascript
JavaScript创建类/对象的几种方式概述及实例
2013/05/06 Javascript
jQuery的css() 方法使用指南
2015/05/03 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
基于javascript实现漂亮的页面过渡动画效果附源码下载
2015/10/26 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
小程序实现搜索框功能
2020/03/26 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[03:18]DOTA2放量测试专访820:希望玩家加入国服大家庭
2013/08/25 DOTA
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python连接远程ftp服务器并列出目录下文件的方法
2015/04/01 Python
python字典DICT类型合并详解
2017/08/17 Python
Python进阶之尾递归的用法实例
2018/01/31 Python
pandas 层次化索引的实现方法
2019/07/06 Python
Python爬虫库requests获取响应内容、响应状态码、响应头
2020/01/25 Python
Python Numpy,mask图像的生成详解
2020/02/19 Python
Python 实现自动登录+点击+滑动验证功能
2020/06/10 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
澳大利亚领先的美容护肤品零售商之一:SkincareStore
2018/01/22 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
优秀毕业自我鉴定
2014/02/15 职场文书
闭幕式主持词
2014/04/02 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript