python获取进程编号(目的、获取当前进程编号、根据编号杀死指定进程号、获取当前父进程编号)
2023-09-11 14:15:15 时间
1. 获取进程编号的目的
获取进程编号的目的是验证主进程和子进程的关系,可以得知子进程是由那个主进程创建出来的。
获取进程编号的两种操作
- 获取当前进程编号
- 获取当前父进程编号
2. 获取当前进程编号
os.getpid() 表示获取当前进程编号
示例代码:
import multiprocessing
import time
import os
# 跳舞任务
def dance():
# 获取当前进程的编号
print("dance:", os.getpid())
# 获取当前进程
print("dance:", multiprocessing.current_process())
for i in range(5):
print("跳舞中...")
time.sleep(0.2)
# 扩展:根据进程编号杀死指定进程
os.kill(os.getpid(), 9) # 强制杀死进程
# 唱歌任务
def sing():
# 获取当前进程的编号
print("sing:", os.getpid())
# 获取当前进程
print("sing:", multiprocessing.current_process())
for i in range(5):
print("唱歌中...")
time.sleep(0.2)
if __name__ == '__main__':
# 获取当前进程的编号
print("main:", os.getpid())
# 获取当前进程
print("main:", multiprocessing.current_process())
# 创建跳舞的子进程
# group: 表示进程组,目前只能使用None
# target: 表示执行的目标任务名(函数名、方法名)
# name: 进程名称, 默认是Process-1, .....
dance_process = multiprocessing.Process(target=dance, name="myprocess1")
sing_process = multiprocessing.Process(target=sing)
# 启动子进程执行对应的任务
dance_process.start()
sing_process.start()
执行结果:
3. 获取当前父进程编号
os.getppid() 表示获取当前父进程编号
示例代码:
import multiprocessing
import time
import os
# 跳舞任务
def dance():
# 获取当前进程的编号
print("dance:", os.getpid())
# 获取当前进程
print("dance:", multiprocessing.current_process())
# 获取父进程的编号
print("dance的父进程编号:", os.getppid())
for i in range(5):
print("跳舞中...")
time.sleep(0.2)
# 扩展:根据进程编号杀死指定进程
os.kill(os.getpid(), 9) # 直接杀死该进程
# 唱歌任务
def sing():
# 获取当前进程的编号
print("sing:", os.getpid())
# 获取当前进程
print("sing:", multiprocessing.current_process())
# 获取父进程的编号
print("sing的父进程编号:", os.getppid())
for i in range(5):
print("唱歌中...")
time.sleep(0.2)
if __name__ == '__main__':
# 获取当前进程的编号
print("main:", os.getpid())
# 获取当前进程
print("main:", multiprocessing.current_process())
# 创建跳舞的子进程
# group: 表示进程组,目前只能使用None
# target: 表示执行的目标任务名(函数名、方法名)
# name: 进程名称, 默认是Process-1, .....
dance_process = multiprocessing.Process(target=dance, name="myprocess1")
sing_process = multiprocessing.Process(target=sing)
# 启动子进程执行对应的任务
dance_process.start()
sing_process.start()
执行结果:
相关文章
- Python脚本扫描给定网段的MAC地址表(scapy或 python-nmap)
- Python脚本写端口扫描器(socket,python-nmap)
- 测试面试Python——线程进程协程代码实现(面试频率超高)
- Python任意参数的数量/预习课python基础
- Python安装第三方库之数据源修改
- Python以进程方式无黑窗在后台运行(无命令窗)
- Python 统计进程池正在执行的进程个数(进程池进程个数)
- Python 进程锁使用
- Python删除进程用户权限(获取用户权限、用户权限,设置用户权限、用户权限)
- python多进程管道通信(精)
- python 进程池
- 如何快速学习python,学好python?能通过Python赚到的第一笔钱,有哪些经验可以分享吗?
- 35岁转行python可怕吗?为什么要选择python?
- Python分享:python爬虫可以用来做什么?
- 21 python - 字典
- python的logging日志模块
- gyp ERR! stack Error: Can‘t find Python executable “python“, you can set the PYTHON env variable.
- python Python程序的架构
- 顶级 Python 机器学习库
- Python 教程大全之使用 python 获取唯一单词的计数
- GPU教程之开始在 Python 中快速使用 GPU 进行数据科学项目(教程含源码)
- Python 实现被动收入教程之我如何使用 python 制作我的第一个高级telegram机器人
- 《Python语言程序设计》——2.2 编写一个简单的程序
- 用python做测试实现高性能测试工具(5)—多进程写log
- Python 基础 之 多任务 yield/greenlet/gevent 协程知识点的简单整理,以及对应的使用(迭代器、协程、进程线程和协程的区别等)
- 【Python】python 库分类大全
- 【python百度智能云】:Python — 三种获取__VIEWSTATE、__VIEWSTATEGENERATOR、__EVENTVALIDATION方法。
- 【Linux学习笔记】解决:yum install python-dev 报错(CentOS安装Python-dev库)
- python all()函数