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的Twisted框架实现webshell密码扫描器的教程
Apr 16 Python
python itchat实现微信好友头像拼接图的示例代码
Aug 14 Python
python编写Logistic逻辑回归
Dec 30 Python
tensorflow中next_batch的具体使用
Feb 02 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
Django框架模板注入操作示例【变量传递到模板】
Dec 19 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
Jun 23 Python
M1芯片安装python3.9.1的实现
Feb 02 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 Python
Pytest中skip和skipif的具体使用方法
Jun 30 Python
Python 全局空间和局部空间
Apr 06 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
thinkphp模板赋值与替换实例简述
2014/11/24 PHP
PHP网站开发中常用的8个小技巧
2015/02/13 PHP
PHP中error_reporting()用法详解
2015/08/31 PHP
PHP响应post请求上传文件的方法
2015/12/17 PHP
PHP5中使用mysqli的prepare操作数据库的介绍
2019/03/18 PHP
页面版文本框智能提示JS代码
2009/11/20 Javascript
面向对象设计模式的核心法则
2013/11/10 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
Javascript生成全局唯一标识符(GUID,UUID)的方法
2016/02/27 Javascript
使用vue.js开发时一些注意事项
2016/04/27 Javascript
Avalonjs双向数据绑定与监听的实例代码
2017/06/23 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
浅谈Javascript常用正则表达式应用
2019/03/08 Javascript
记录一次开发微信网页分享的步骤
2019/05/07 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
2019/08/23 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
js实现百度淘宝搜索功能
2020/02/17 Javascript
详解vue高级特性
2020/06/09 Javascript
Python中用max()方法求最大值的介绍
2015/05/15 Python
结合Python的SimpleHTTPServer源码来解析socket通信
2016/06/27 Python
Python高级特性切片(Slice)操作详解
2018/09/27 Python
Python调用接口合并Excel表代码实例
2020/03/31 Python
django 实现简单的插入视频
2020/04/07 Python
python操作toml文件的示例代码
2020/11/27 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
财务科科长岗位职责
2014/03/10 职场文书
驾驶员安全责任书范本
2014/07/24 职场文书
家属答谢词
2015/01/05 职场文书
《狼牙山五壮士》教学反思
2016/02/17 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
基于Python实现流星雨效果的绘制
2022/03/18 Python
MySQL数据库事务的四大特性
2022/04/20 MySQL