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