1:要想了解多线程,必须先了解线程,而要想了解线程,必须先了解进程,因为线程是依赖于进程而存在的。 2:什么进程? 通过任务管理器我们看到了进程的存在。 而通过观察,我们发现只有运行的程序才会出现进程。 进程:正在运行的程序。 进程 是系统进行资源分配和调用的独立单位。每一个进程都有它自已的内存空间和系统资源。 3:多进程有什么意义? 单进程的计算机只能做一件事情,而我们现在的计算机都可以做多件事情。 举例:一边玩游戏(游戏进程),一边听音乐(音乐进程)。 也就是说现在的计算机都是支持多进程的,可以在一个时间段内执行多个任务。 并且呢,可以提高CPU的使用率。 问题: 一边玩游戏,一边听音乐是同时进行的吗? 不是,因为单CPU在某个时间点上只能做一件事情。 而我们在玩游戏,或者听音乐的时候,是CPU在做程序间的高效切换让我们觉得是同时进行的。
4:什么是线程呢? 在同一个进程内又可以执行多个任务,而这每一个任务我们就可以看成是一个线程。 线程:是程序的执行单元,执行路径。是程序使用CUP的基本单位。 单线程:如果程序只有一条执行路径。 多线程:如果程序有多条执行路径。 5:多线程有什么意义呢? 多线程的存在,不是提高程序的执行速度。其实是为了提高应用程序的使用率。 程序的执行其实都是在抢CUP的资源,CPU的执行权。 多个进程是在抢这个资源,而其中的某一个进程如果执行路径比较多,就会有更高的几率抢到CPU的执行权。 我们是不敢保证哪一个线程在哪个时刻抢到,所以线程的执行有随机性。 举例:一个美女抛绣球(CPU执行权),A,B,C...等,ABC(进程)三个人抢绣球(CPU执行权),但是由于B(进程)使用分身术(多条执行路径),而他抢到绣球的机率将会很高,但是不一定能抢到