进程

本文详细解释了进程和线程的概念,包括进程的定义、创建多进程的方法、进程的状态及转换,以及进程与线程之间的区别。介绍了如何使用Python的multiprocessing模块创建进程和进程池,还讲解了队列在进程间通信的作用。

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

1. 什么是进程?

运行起来的应用程序就称之为进程。也就是说当程序不运行的时候我们称之为程序,当程序运行起来他就是一个进程。通俗的理解就是不运行的时候是程序,运行起来的就是进程,程序和进程之间的对应关系是:程序只有一个,但是进程可以有个。(进程是系统进行资源分配和调度的基本单位)

2.创建多进程

from multiprocessing import Process
count=0
def hanshu1():
    global count
    for i in range(10000):
        count=count+1
    print("函数1",count)
def hanshu2():
    global count
    for i in range(10000):
        count+=1
    print("函数2",count)
if __name__ == '__main__':
    t1=Process(target=hanshu1)
    t2=Process(target=hanshu2)
    t1.start()
    t2.start()

结果:函数2 10000
函数1 10000

3.进程的状态

(1)就绪状态:当进程已分配到CPU以外的所有必要资源,只要获得处理机制便可立即执行,这个状态就称为就绪状态。
(2)执行状态:当进程已获得处理机制,其程序正处在处理机上执行,这个状态就称为执行状态。
(3)阻塞状态:正在执行的进程,由于的等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。(引起进程阻塞的事件可有多种,如:等待I/O完成、申请缓冲区不能满足、等待信件(信号)等)

进程状态转换图:
在这里插入图片描述
Queue队列
put()向队列中存放数据,如果队列已满,此方法将阻塞至友空间为止
get()返回q中的一个项目。如果q为空,此方法将阻塞,直到队列中有项目可用为止
q.qsize()判断项目的大小

5.进程池

我们可以使用multiprocessing模块提供Pool类,也就是进程池,可以达到进程重复利用。
join主进程等待所有子进程执行完毕,必须在close。
close等待所有进程结束才关闭线程池。

6.线程

进程是资源分配的最小单位,线程是cpu调度的最小单位。(进程中的所有线程共享进程中的所有资源)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值