惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
aimingoo的专栏
aimingoo的专栏
B
Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
IT之家
IT之家
V
Visual Studio Blog
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
A
About on SuperTechFans
博客园 - 聂微东
Blog — PlanetScale
Blog — PlanetScale
N
News and Events Feed by Topic
A
Arctic Wolf
WordPress大学
WordPress大学
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
D
Darknet – Hacking Tools, Hacker News & Cyber Security
F
Fortinet All Blogs
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Y
Y Combinator Blog
T
Threat Research - Cisco Blogs
Latest news
Latest news
Simon Willison's Weblog
Simon Willison's Weblog
Cyberwarzone
Cyberwarzone
S
Schneier on Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
Lohrmann on Cybersecurity
Stack Overflow Blog
Stack Overflow Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy International News Feed
J
Java Code Geeks
Spread Privacy
Spread Privacy
宝玉的分享
宝玉的分享
I
Intezer
L
LangChain Blog
Hacker News - Newest:
Hacker News - Newest: "LLM"
G
GRAHAM CLULEY
博客园 - 叶小钗
博客园 - 三生石上(FineUI控件)
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
N
News and Events Feed by Topic
AWS News Blog
AWS News Blog
Attack and Defense Labs
Attack and Defense Labs
Security Archives - TechRepublic
Security Archives - TechRepublic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO

博客园 - KLAPT

Gateway 网关 CodeX =>Skills Redis 内存满了怎么处理 SpringBoot 默认配置修改 JWT 续签 Access Token + Refresh Token 双 Token claudeCode 命令 MyBatis 的 Mapper 接口 AI | CC GUI 集成 IDEA 完整教程 在IDEA中使用Claude Code IDEA中使用CodeX MyBatisPlus解决大数据量查询慢问题 idea 中的 claude code Token Dubbo 和 Spring Cloud Gateway的区别 Transactional 注解中propagation 掌握 Spring 框架这 10 个扩展点 SpringBoot 快速实现 api 加密 Spring Boot/Cloud 中 bootstrap.yml 与 application.yml SpringBoot 实现 DOCX 转 PDF 微服务Token鉴权设计的几种方案 RSA 加密 Java二维码 ntp服务端和客户端 Chronyd与NTP chronyd 作为服务器时钟 chrony sudo命令和su 的区别 java -cp 和 java -jar Maven 项目打包:实现业务代码与第三方依赖分离 达梦数据库创建用户 梦数据库新增大字段报错问题 达梦数据库操作 MySQL UPDATE多表关联更新 达梦数据库 为HTTP POST请求设置请求体 在Java中调用第三方接口并返回第三方页面 Java调用第三方接口的方法 Nginx 之Rewrite 使用详解 linux 命令 Spring Boot项目中集成Spring Security OAuth2和Apache Shiro
进程、线程、协程
KLAPT · 2026-05-06 · via 博客园 - KLAPT

进程是资源分配的基本单位,线程是 CPU 调度的基本单位,协程是用户态的轻量级线程。

三者是层级包含关系:一个进程里有多个线程,一个线程里可以跑多个协程。

2a4693121a102a42ee5e3a8c96142f8a

进程:资源分配的最小单位

 进程是操作系统分配资源的基本单位,每个进程有自己独立的内存空间——代码段、数据段、堆、栈全部隔离。// Java 中每个运行的 JVM 就是一个进程
public static void main(String[] args) {
    ProcessHandle current = ProcessHandle.current();
    System.out.println("PID: " + current.pid());
    System.out.println("进程信息: " + current.info());
}

进程的三个核心特点:

隔离性强 — 一个进程挂了不影响其他进程。Chrome 每个标签页用独立进程就是这个原因,一个页面崩了不会拖垮浏览器。

创建开销大 — 需要分配独立内存空间、复制父进程资源(写时复制),代价不低。

通信复杂 — 进程间通信(IPC)要走管道、消息队列、共享内存等机制,比线程间通信麻烦得多。

线程:CPU 调度的最小单位

线程是进程内的执行单元。同一进程内的多个线程共享内存空间,但各自有独立的栈和程序计数器。

关键点:Java 线程和 OS 线程是 1:1 的关系(传统模型),每个 Java Thread 都对应一个操作系统线程。

上下文切换开销。线程的调度由操作系统内核完成,每次切换都要:

  1.  从用户态切到内核态
  2.  保存当前线程的寄存器、程序计数器等上下文
  3.  恢复目标线程的上下文
  4.  可能导致 CPU 缓存(TLB)失效

一次线程切换大约 1~10 微秒。听起来不多?但如果你有上万个线程频繁切换,光上下文切换就能把 CPU 吃满。

d626a3c7a42f6ddb7a7e4604476f7e13

协程:用户态的轻量级线程

协程和线程最大的区别是:协程的切换由程序自己控制,不需要操作系统内核参与。

因为完全在用户态完成调度,不需要陷入内核态,所以切换速度极快。而且协程不需要操作系统分配栈空间(线程栈通常 1MB),一个协程可能只需要几 KB 内存