多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关
稳定性: 进程 > 线程 > 协程
系统资源占用量:进程 > 线程 > 协程
父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)
多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关
稳定性: 进程 > 线程 > 协程
系统资源占用量:进程 > 线程 > 协程
父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)
使用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()
进程可被看做划分资源的单位,进程只负责请求系统资源,然后交由进程内部的线程负责完成任务(进程相当于车间流水线)
线程是实际执行任务的单位,多任务效率的提升主要依赖于线程的数量(线程相当于流水线的工人)
协程是比线程更小占用更小执行单元
点击查看更多内容
1人点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦