线程thread、进程Process

一、概念

1.线程(thread):是操作系统能够进行运算调度的最小单位。操作系统分配资源以进程为基本单位。
2.进程(Process):操作系统是分配资源和调度资源的基本单位,进程是线程的容器。同一进程中的多条线程将共享该进程中的全部系统资源。

二、具体说明

在操作系统windows中,一个应用程序(IE浏览器、QQ、网易云音乐等等)至少包含一个进程(Process),一个进程至少包含一个线程(thread)。
线程thread、进程Process

线程thread、进程Process

三、线程安全

线程之间共享数据最大的危险在于多个线程同时改一个变量
线程安全-多个线程访问的情况下产生的

四、多任务

1.单核CPU执行任务

早期计算机是单核CPU,同一时刻CPU一个核心只能执行一个线程任务,CUP核心会非常非常快速的切换不同的线程进行执行。
由于CPU的切换不同的线程执行速度非常快,对于用户直观感觉就是每个应用程序任务都是同时执行。单核CPU不是真正的多任务

2.多核CPU执行任务

多核CPU,同一时刻CPU一个核心只能执行一个线程任务,n个CUP核心可以执行n个线程任务。此时就是多任务

五、作用域

1.不同进程间是相互独立
2.A进程内的a线程在B进程是不可见的。

在Windows下,多线程的效率比多进程要高,微软的IIS服务器默认采用多线程模式。