2025-11-13 11:02:43
线程阻塞是因为在等待资源或操作比如I/O或锁竞争,这时候线程会主动让出CPU。而进程阻塞是整个进程无法运行,因为进程包含多个线程,当所有线程都阻塞时进程才会卡住。就像接力赛跑,单个选手摔倒了整个队伍不一定会停,要看有没有其他选手能接着跑。
为什么线程阻塞不会直接导致进程阻塞呢?因为线程是进程里面的"小工",进程是"大工厂"。比如Linux内核统计显示,单个进程平均有10-20个线程,当某个线程在等网络数据包时,其他线程可以处理订单或计算。根据大前年Linux社区报告,系统每秒处理300万次线程切换,其中80%发生在单个进程内部。当线程A在等数据库响应时,线程B能继续处理用户请求,就像工厂流水线,一个环节卡住不影响整体产出。但若所有线程都堵在数据库查询上,这时候进程才会真正卡死。就像超市收银台,单个收银员卡住不影响其他柜台工作,但所有柜台都堵车时顾客才会流失。
本题链接: