301 字
2 分钟
进程和线程有什么区别
进程是操作系统分配资源的最小单位,线程是 CPU 调度的最小单位。
每个进程有自己独立的内存空间,包括代码段、数据段、堆栈等,可以看作是一个正在运行的程序实例,进程之间相互独立。
线程属于进程,一个进程可以包含多个线程。线程共享进程的内存空间和资源,比如文件句柄、数据段,但每个线程有自己独立的栈和寄存器。

多线程一定比单线程快吗?
不一定。
- 如果任务是纯 CPU 计算,线程数超过 CPU 核心数后,再加线程反而更慢,因为线程切换本身有开销。
- 如果任务是 IO 密集型,比如读文件、网络请求,多线程能在一个线程等 IO 时让另一个线程干活,这时候多线程才有优势。
- 还有就是多线程要加锁同步,锁竞争激烈的话,线程都在那排队等锁,性能还不如单线程顺序执行。
Redis 就是单线程模型,照样能扛住每秒几万次请求。
目录