什么是线程
线程是CPU调度的基本单位。一个进程可以包含多个线程,线程自己基本不拥有系统资源,但是它可以和同属于一个进程的其他线程共享进程所拥有的全部资源。多线程之间对内存共享,线程间通信可以直接基于共享内存来实现,比多进程之间通信更轻量。多线程之间切换不需要切换虚拟内存空间、文件描述符等,所以线程的上下文切换也比多进程轻量。
多进程和多线程的应用场景
-
一般不同任务间需要大量的通信,使用多线程的场景比多进程多。IO密集型。
-
但是多进程有更高的容错性,一个进程的崩溃不会导致整个系统的崩溃,在任务安全性较高的情况下,采用多进程。CPU密集型。