日积月累--线程01

进程和多线程的概念及线程的优点

  进程:进程是操作系统结构的基础;是一次程序的执行;是一个程序及其数据在处理机上顺序执行时所发生的活动;是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。(百度百科)

  初看这段话觉得十分抽象,难以理解,请看下图:

          

    打开“windows任务管理器”,完全可以将运行在内存中的exe文件理解为进程,进程是受操作系统管理的基本运行单位。

  线程:线程可以理解为线程中独立运行的子单位。比如:QQ.exe运行时就有很多的子任务在同时运行。好友视频线程、下载文件线程、传输数据线程、发送表情线程等。

      这些任务都可以同时运行,其中每一项都可以理解为“线程”在工作。

  多线程优点:可以最大限度地利用CPU的空闲时间来处理其他任务,比如一边让操作系统处理打印机打印的数据,一边使用word文档编辑文档。而CPU在这些任务之间不停地                                 切换,由于切换速度非常快,给使用者的感受就是这些任务似乎在同时运行。所以使用多线程技术后,可以在同一时间内运行更多不同种类的任务。

  单任务的缺点:如下图任务1和任务2是两个完全独立、互不相关的任务,任务1是在等待远程服务器返回数据,以便进行后期处理,这时CPU一直处于等待状态,

         一直在“空运行”。任务2必须在任务1运行结束后才能被执行。本程序是运行在单任务环境中,所以任务2有非常长的等待时间,系统运行效率大幅降低。

         单任务的特点就是排队等待,也就是同步,就像cmd中输入一条指令后,必须等待这条命令执行完后才可以执行下一条命令一样。这就是单线程环境的缺点,

            大大降低了CPU效率。

  

         多任务运行环境如图所示,CPU可以在任务1和任务2之间来回切换,使任务2不必等到10秒在运行,系统的运行效率大大得到提升。这就是要使用多线程

         技术、要学习多线程的原因。这时多线程的优点,使用多线程就是在使用异步。

 注意:多线程是异步的,所以千万不要把Eclipse里代码的顺序当成线程执行的顺序,线程被调用的时机是随机的。

         

         

  

猜你喜欢

转载自www.cnblogs.com/520lq/p/10511056.html