python中线程嵌套进程_简要说明__python3中的进程/线程/协程

多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关

稳定性: 进程 > 线程 > 协程

系统资源占用量:进程 > 线程 > 协程

父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关

稳定性: 进程 > 线程 > 协程

系统资源占用量:进程 > 线程 > 协程

父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)

使用3重嵌套创建2进程4线程8协程import osimport timefrom multiprocessing import Processfrom threading import Threadimport geventfrom gevent import monkey

monkey.patch_all()# 创建两个进程,每个线程两个线程,每个线程两个协程def print_gevent_info(T_info ,G_info):

print("在协程执行的函数中,所属的进程号为%d,线程的名称为%s,协程的名称为%s"%(os.getpid(),T_info ,G_info))

time.sleep(0.5)def print_thread_info(T_info):

print("在线程执行的函数中:线程所属的进程号为:%d,进程的名称为%s"%(os.getpid(),T_info))

gevent.joinall([gevent.spawn(print_gevent_info, T_info,"g1"), gevent.spawn(print_gevent_info, T_info, "g2")])

time.sleep(2)def creat_two_thread():

t1 = Thread(target=print_thread_info, args=("t1",))

t2 = Thread(target=print_thread_info, args=("t2",))

t1.start()

t2.start()def print_process_info(P_info):

# 创建线程

creat_two_thread()

print("在进程执行的函数中,进程的名称为%s进程号为%s"%(P_info,os.getpid()))

time.sleep(5)    passdef main():

#创建两个进程

p1 = Process(target=print_process_info, args=("p1",))

p2 = Process(target=print_process_info, args=("p2",))

# 开启两个进程

p1.start()

p2.start()

if __name__ == "__main__":

main()

进程可被看做划分资源的单位,进程只负责请求系统资源,然后交由进程内部的线程负责完成任务(进程相当于车间流水线)

线程是实际执行任务的单位,多任务效率的提升主要依赖于线程的数量(线程相当于流水线的工人)

协程是比线程更小占用更小执行单元

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值