简要说明__python3中的进程/线程/协程

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

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

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

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

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

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

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

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

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

使用3重嵌套创建2进程4线程8协程
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()


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

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

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

目录
相关文章
|
15天前
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
|
18小时前
|
Unix Linux 调度
linux线程与进程的区别及线程的优势
linux线程与进程的区别及线程的优势
|
3天前
|
Java 调度
【Java多线程】对进程与线程的理解
【Java多线程】对进程与线程的理解
11 1
|
5天前
|
监控 Python
python过滤指定进程
python过滤指定进程
13 1
|
5天前
|
运维 监控 Ubuntu
Python实现ubuntu系统进程内存监控
Python实现ubuntu系统进程内存监控
12 1
|
5天前
|
开发者 Python
在Python中查询进程信息的实用指南
在Python中查询进程信息的实用指南
9 2
|
12天前
|
调度
线程和进程的区别?
线程和进程的区别?
|
13天前
|
消息中间件 Linux 调度
Python的进程锁,进程队列
Python的进程锁,进程队列
122 3
|
13天前
|
数据采集 监控 调度
Python的进程,以及进程同步,守护进程详细解读
Python的进程,以及进程同步,守护进程详细解读
138 4
|
13天前
|
调度 Python 容器
【python】-详解进程与线程
【python】-详解进程与线程