python多任务编程

本文详细介绍了Python中的多任务编程,包括多任务的概念,单核与多核CPU下的实现,多进程编程的原理与方法,如fork、进程池,多线程编程的差异及实现,以及协程的定义与优势,如gevent的使用。内容涵盖进程、线程的创建、通信以及GIL锁和死锁等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.多任务编程
1.什么是多任务编程
多任务编程简单来说就是操作系统可以同时运行多个任务。
2.单核cpu如何实现多任务编程
在这里插入图片描述
操作系统轮流让各个任务交替执⾏,每个任务执⾏0.01秒,这样反复执⾏下去。 表⾯上看,每个任务交替执⾏,但CPU的执⾏速度实在是太快了,感觉就像所有任务都在同时执⾏⼀样。
3.多核cpu如何实现多任务编程
在这里插入图片描述
真正的并⾏执⾏多任务只能在多核CPU上实现,但是,由于任务数量远远多 于CPU的核⼼数量,所以,操作系统也会⾃动把很多任务轮流调度到每个核 ⼼上执⾏。
二.多进程 编程
1.什么是进程
编写完毕的代码,在没有运⾏的时候,称之为程序 。
正在运⾏着的代码,就成为进程 ,除了包含代码以外,还有需要运⾏的环境等,所以和程序是有区别的。
进程的五状态模型
在这里插入图片描述
2.如何创建子进程
在这里插入图片描述

os.getpid()  获取当前的进程的pid
os.getppid()  获取当前进程的父进程的pid
"""

import os

print('当前进程(pid=%d)正在运行....' %(os.getpid()))
#在pycharm中编写代码,程序的父进程就是pycharm

print('当前进程的父进程为(pid=%d)正在运行....' %(os.getppid()))

print('开始创建子进程')

pid = os.fork()
if pid==0:
    print('这是子进程返回的是0,子进程的pid为%d,父进程为%d' %(os.getpid(),os.getppid()))
else:
    print('这里是父进程返回的,返回值为子进程的pid,为%d' %(pid))

执⾏到os.fork()时,操作系统会创建⼀个新的进程复制⽗进程的所有信息到⼦进程中
普通的函数调⽤,调⽤⼀次,返回⼀次,但是fork()调⽤⼀次,返回两次
⽗进程和⼦进程都会从fork()函数中得到⼀个返回值,⼦进程返回是0,⽽⽗进程中返回⼦进程的 id号
程序执行如图所示:
在这里插入图片描述
3.window系统如何创建子进程
Window

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值