线程与进程
概念
什么是进程
引用百度:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体
举个栗子说明一下:
在手机上每启动一个app就是启动一个进程,
什么是线程
引用百度:是操作系统能够进行运算调度的最小单位。
举个栗子说明一下:
线程可以理解成在进程中独立运行的子任务。比如,在QQ中和好友视频,下载文件,发送表情,这些都有独立的线程在后台运行。
优点
使用多线程有什么优点呢。 那就是最大限度的利于CPU空闲时间来处理其他任务。
例如:
如果在qq是单线程的那么在好友视频时就不能发文件发送表情包,如果要发送文件就必须停止好友视频,如果在发送文件时就不能和好友聊天等
在多线中这些就可以同时进行了 在发文件时可以聊天,还可以视频等。cpu 会在这几个任务中来回切换以最大限度的利于空闲时间
执行任务图示
单线程
多线程
注
多线程虽然看似使多个任务同时进行,但实则不然。他的同时进行也可能时cpu在在不同任务之间跳转来实现看似同时进行。例如在一个单核cpu中,qq中有三个任务,视频通话、文字聊天、下载文件cpu 会执行视频通话一些时间,执行文字聊天一些时间,下载文件一些时间,由于每次分配的时间的非常短 cpu又在不停的在这几个任务切换间切换,所以就达到了看似同时进行,实际上时在同一时间只有一个任务在执行。当然在多核cpu中也可能达到真正的同时进行,比如视频通话和文件现在,cpu 第一个核执行视频通话,第二个核执行文件下载,这样就达到真正的同时进行。
快乐的搬砖工