进程和线程:
进程:启动一个QQ.exe就叫一个进程。 接着又启动一个360.exe,这叫两个进程。以此类推,每个独立执行的程序都称为进程。
线程:线程是在进程内部同时做的事情,比如在QQ里,有很多事情要同时做,比如发送消息和接受消息,同时上传文件,这就是由多线程
来实现的。
如Windows任务管理器:可以看到,后台运行搜狗输入法这个程序看作是一个进程,而搜狗运行中又有多个线程在执行。可以说,进程包含多个线程。
对CPU来说:
系统可以分配给每个进程一段有限的执行 CPU 的时间(也称为 CPU 时间片),CPU 在这段时间中执行某个进程,然后下一个时间段又跳到另一个进程中去执行。由于 CPU 切换的速度非常快,给使用者的感受就是这些任务似乎在同时运行,所以使用多线程技术后,可以在同一时间内运行更多不同种类的任务。
单线程与多线程:
单线程的特点就是排队执行,也就是同步,就像在 cmd 中输入一条命令后,必须等待这条命令执行完才可以执行下一条命令一样。这就是单线程环境的缺点,即 CPU 利用率大幅降低。
多线程环境下的执行模式,CPU 完全可以在任务 1 和任务 2 之间来回切换,使任务 2 不必等到 n秒再运行,系统的运行效率大大得