多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关
稳定性: 进程 > 线程 > 协程
系统资源占用量:进程 > 线程 > 协程
父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)
多任务可以充分利用系统资源,极大提升程序运行效率,多任务的实现往往与 多线程,多进程,多协程有关
稳定性: 进程 > 线程 > 协程
系统资源占用量:进程 > 线程 > 协程
父子关系: 进程(父亲) > 线程(儿子) > 协程(孙子)
使用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()