多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关
稳定性: 进程 > 线程 > 协程
系统资源占用量:进程 > 线程 > 协程
父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)
多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关
稳定性: 进程 > 线程 > 协程
系统资源占用量:进程 > 线程 > 协程
父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)
使用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人點贊
評論
評論
共同學習,寫下你的評論
評論加載中...
作者其他優質文章
正在加載中
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦