• 日积月累--线程01


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

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

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

              

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

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

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

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

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

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

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

                大大降低了CPU效率。

      

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

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

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

             

             

      

  • 相关阅读:
    SQL Pass北京举办第11次线下活动,欢迎报名(本次活动特别邀请了来自微软总部Xin Jin博士)
    【转】go中struct初始化的3种方式
    ubuntu网络的nameserver配置
    【转】路由器LAN口IP地址到底是什么?
    SSH -R 反向端口转发---通过一台阿里云的服务器来访问公司内部网络种的电脑
    ubuntu桌面系统rdesktop远程到win10报错
    非正常退出网页
    【转】xargs命令
    shell 管道符| 后面的xargs 一次执行多条命令,用xargs获取到的参数
    【转】做一名合格的程序员(learning of a previous team)
  • 原文地址:https://www.cnblogs.com/520lq/p/10511056.html
Copyright © 2020-2023  润新知