(一)任务管理器
<1>应用
显示了所有当前正在运行的应用程序,不过它只会显示当前已打开窗口的应用程序,而QQ应用等最小化至系统托盘区的应用程序则并不会显示出来。
<2>后台进程
显示了所有当前正在运行的进程,包括应用程序、后台服务等,那些隐藏在系统底层深处运行的病毒程序或木马程序都可以在这里找到
<3>Windows进程
属于Windows系统的必需进程???
(二)进程是程序(静态的,也就是代码)的运行实例,一个程序可以有多个异步、同步运行的进程,在任务管理器中,运行的.exe程序就是一个进程
比如:一台电脑可以运行多个QQ应用
扩展:点击“QQ”图标即可运行程序,也就是创建了一个进程;开发工具中,点击“Run”按钮,也是运行程序,也是创建了一个进程,当进入main函数中时,则创建一个线程(线程名为main),而且线程还可以再创建线程。
(三)进程是资源分配的最小单位,线程是CPU调度的最小单位;线程作为利用CPU资源的基本单位
(四)一个进程可以有多个线程,process = program + PCB + data ;
(五)多进程是指同时运行多个程序,比如一台电脑可以运行多个QQ应用;多线程是指同一个进程中运行的多个任务,比如多线程下载酷狗音乐、QQ、腾讯视频软件,每个线程都在随机性地抢夺CPU资源,而CPU资源随机切换到某个线程
(六)C程序代码中的fork()用来创建一个进程
(七)CPU资源像一个核心工厂,而程序像工厂里面的车间,一个个进程像一条条流水线,线程像流水线上的工人
》》》怎么理解“一个进程可以有多个线程”?好比一条流水线上可以有多个工人:分别负责电力控制、商品分拣、货物包装、货物搬运
》》》怎么理解“多进程”?好比一个核心工厂里面有多条流水线:原材料清洗线、原材料装箱线
》》》怎么理解“多线程”?好比橘子和橙子装箱线中,一个工人某时刻要么进行分拣橘子,要么进行分拣橙子,但是在商品分拣这条流水线上,这名工人一直在工作
》》》怎么理解“线程作为利用CPU资源的基本单位”?在核心工厂中,流水线需要工人工作才能运行,在上面的例子中,工人只要在分拣橘子或者橙子,那么这条流水线就在运转,核心工厂就在被利用、就在生产商品