news 2026/5/26 7:17:39

你的代码为何高并发就卡死?进程、线程、协程选对的秘密!

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
你的代码为何高并发就卡死?进程、线程、协程选对的秘密!

在进入正题之前,我们先说一下并行和并发的区别:

(感觉是同时): 同一刻快速交替执行多个任务

(真的同时): 同一刻真正同时执行多个任务

一,进程

进程有三大步骤,分别是:《1》导包: importmultiprocessing

《2》创建进程: 进程对象名 = multiprocessing.Process(target=任务名)

《3》启动进程:进程对象名.start()

创建进程中的几个参数解释:《1》args: 以元组的形式传递参数, 注意: 如果只有1个参数加逗号

《2》kwargs: 以字典形式传递参数, 注意: 字典的key必须和任务中形参名一致

《3》name: 默认进程名称是Process-1,Process-2...,也可以直接指定

《4》target: 指定携带任务的函数名, 注意: 没有括号

二,线程

线程有三大步骤,分别是:《1》导包: importthreading

《2》创建线程: 进程对象名 = multiprocessing.Thread(target=任务名)

《3》启动线程:线程对象名.start()

创建线程中的几个参数解释:《1》args: 以元组的形式传递参数, 注意: 如果只有1个参数加逗号

《2》kwargs: 以字典形式传递参数, 注意: 字典的key必须和任务中形参名一致

《3》name: 默认线程名称是Thread-1,Thread-2...,也可以直接指定

《4》target: 指定携带任务的函数名, 注意: 没有括号

三,进程和线程

区别:

《1》进程之间不共享全局变量

《2》线程之间共享全局变量

《3》 创建进程的资源开销要比创建线程的资源开销要大

《4》进程是操作系统资源分配的最小单位,线程是CPU调度的最小单位

关系:

《1》线程是依附在进程里面的,没有进程就没有线程。

《2》 一个进程默认提供一条线程,进程可以创建多个线程。

四.协程

python中的协程是从生成器发展来的

协程的三要素:async def 定义函数

await 指定等待处

asyncio.run()

注:最后提示一下,我们python中的生成器推导式:(i for i in range(x))

生成器函数就是在函数内使用了yield关键字

综上,我们如何选择进程线程协程呢?如果是CPU密集型主要是数学计算我们使用进程;如果是简单的后台任务,简单易用我们用线程;如果是I/O密集型,主要是网络请求或者文件读写,我们用协程。一句话总结,进程真正同时做事,线程看起来同时做事,协程单线程内切换做事。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 23:39:36

儿童青少年近视该如何科学防控家长是青少年近视防控的“守门人”

儿童青少年近视率的持续攀升,已成为影响国民健康的重要问题。近视不仅会给孩子的学习生活带来不便,还可能随着年龄增长发展为高度近视,引发眼底病变等潜在风险。在近视防控的全过程中,家长作为孩子成长的第一责任人,肩…

作者头像 李华
网站建设 2026/5/24 4:18:42

近视防控看这篇:儿童近视如何干预?什么方法才有效?

如今,儿童近视率逐年攀升,低龄化趋势更是愈演愈烈。不少家长在体检单上看到孩子的视力数值下滑时,满心担忧却不知从何入手。其实家长们要明白,儿童近视干预从来不是 “一招制胜” 的事,更需要融入日常的科学防控。一、…

作者头像 李华
网站建设 2026/5/25 20:50:55

Spring状态机深度解析:从入门到生产实战

Spring State Machine是Spring生态系统中一个强大的状态机框架,它让复杂的状态流转变得优雅而简单。本文将带你从基础概念出发,逐步深入理解并掌握Spring状态机在实际生产环境中的应用。一、状态机是什么?为什么要用它?想象一下订…

作者头像 李华
网站建设 2026/5/25 14:39:27

主流BI工具对比:帆软、Quick BI 与 Tableau 全面解析

在当今数据驱动的时代,企业对数据分析和可视化的需求日益增长。商业智能(Business Intelligence, BI)工具作为连接数据与决策的桥梁,已成为企业数字化转型的核心组成部分。市场上涌现出众多优秀的BI平台,其中帆软&…

作者头像 李华
网站建设 2026/5/25 1:00:31

GitLab与DeepSeek协同实现MR自动评审实践指南

GitLab与DeepSeek协同实现MR自动评审实践指南摘要本文详细探讨如何利用GitLab的CI/CD能力与DeepSeek智能引擎相结合,构建自动化代码评审系统。该系统能够在合并请求(MR)提交时自动执行代码质量分析,生成结构化评审报告并提出优化建…

作者头像 李华