1、认识
(1)计算机的操作系统大多采用多任务和分时设计,多任务是指在一个操作系统中可以同时运行多个程序。
(2)例如在使用QQ聊天的同时听音乐,即有多个独立运行的任务,每个任务对应一个进程,每个进程又可以产生多个线程
1. 进程
(1)程序(Program)是对数据描述与操作的代码的集合,如Office中的Word、暴风影音等应用程序。
(2)进程(Process)是程序的一次动态执行过程,它对应了从代码加载、执行至执行完毕的一个完成过程,这个过程也是进程本身从产生、发展至消亡的过程。
(3)操作系统同时管理一个计算机系统中的多个进程,让计算机系统中的多个进程轮流使用CPU资源,或者共享操作系统的其它资源。
(4)进程有如下特点:
-->进程是系统运行程序的基本单位。
-->每一个进程都有自己独立的一块内存空间、一组系统资源。
-->每一个进程的内部数据和状态都是完全独立的。
2. 线程
(1)线程是进程中执行运算的最小单位,一个进程在其执行过程中可以产生多个线程,而线程必须在某个进程内执行。
(2)线程是进程内部的一个执行单元,是可完成一个独立任务的顺序控制流程,如果在一个进程中同时运行了多个线程,用来完成不同的工作,则称之为多线程。
(3)线程按处理级别可以分为核心级线程和用户级线程。
--》核心级线程
-->核心级线程是和系统任务相关的线程,它负责处理不同进程之间的多个线程。
-->允许不同进程中的线程按照同一相对优先调度方法对线程进行调度,使它们有条不紊地工作,可以发挥多处理器的并发优势,以充分利用计算机的软/硬件资源。
--》用户级线程
-->在开发程序时,由于程序的需要而编写的线程即用户级线程,这些线程的创建、执行和消亡都是编写在应用程序时进行控制的。
-->对于用户级线程的切换,通常发生在一个应用程序的诸多线程之间,如迅雷中的多线程下载就属于用户线程。
-->多线程可以改善用户体验。具有多个线程的进程能更好地表达和解决现实世界的具体问题,多线程是计算机应用开发和程序设计的一项重要的实用技术。
(4)线程和进程既有联系又有区别:
--》一个进程中至少要有一个线程。
--》资源分配给进程,同一进程的所有线程共享该进程的所有资源。
--》处理机分配给线程,即真正在处理机上运行的是线程。
3. 多线程的优势
--》多线程程序可以带来更好的用户体验,避免因程序执行过慢而导致计算机出现计算机死机或者白屏的情况。