多线程概述(助于理解多线程)

一、多线程概述

  1.简介

  我们通常将每个任务(Task)称为一个进程(Process),而一个进程可以包含多个顺序执行流,每个执行流就是一个线程(Thread)。

  2.线程的概述

  目前计算机操作系统都支持多线程,而应用程序在运行过程中存在着并发执行的多个指令流,每个指令流称为一个线程;

  线程并不是程序,它本身并不能运行,必须依托程序运行,多线程意味着一个程序内部有多条语句并发执行;

  并发执行的含义是操作系统将管理的时间片平均地分配给每一个线程,从而保证所有的线程都能够在极短的时间内得到处理;一个时间片只能执行一个线程,由于时间片是一个很小的时间单位,而CPU的处理速度又非常快,加之线程的运算量并不是特别大,因此操作系统能在很短的时间内切换线程,所有我们看起来就好像是多个线程并发执行的。实际上CPU仍是串行执行线程的。

  3.线程与进程

  程序在运行时会转换为一个或多个进程,进程是一个动态的概念,每一个进程都会占用一定的系统资源和内存空间,并且各个进程之间是相互独立的,从而计算机可以同时运行多个程序。

  进程的特征:

    1)并发性:任何进程都可以与其他进程并发执行;

    2)动态性:进程是一个程序一次执行的过程,进程是动态产生的,动态消亡的;

    3)独立性:进程是一个独立运行的基本单位,也是系统分配资源和调度的独立单位;

    4)结构特征:进程由程序、数据和进程控制块三部分组成;

    5)异步性:进程按照各自独立的、不可预知的速度向前推进运行。

  线程可以说是一种轻量级的进程,线程是进程的组成单元,一个进程可以拥有多个线程;

  多线程技术也是为了支持并发操作,最大限度的提高CPU利用率;线程也要抢占系统资源,与其他的线程争夺CPU的使用权;

  线程与进程的区别:

    1)粒度不同:一个进程可以包含多个线程。进程是由操作系统来管理调度的,而线程是由进程进程调度管理的;

    2)调用系统资源不同:不同进程的代码、内部数据和状态都是完全独立的,而一个程序内的多线程是共享同一块内存空间和同一组系统资源的,有可能互相影响,所有线程之间的通信相对进程而言会方便一些;

    3)线程本身的数据通常之存放在CPU的寄存器以及一个供程序执行时使用的堆栈中,所以线程的切换要比进程切换方便很多。

二、多线程的优势

  1.相对多任务来讲,多个线程能够直接共享数据和资源,多线程编程简单、效率高、能够轻易实现线程之间的通信;

  2.在网络开发中,每个客户端与服务器连接时,就相当于服务器开辟了一个新线程,因此多线程适合开发服务程序;

  3.多线程技术适合于开发有多种交互接口的程序,如聊天程序、网络下载工具等;

  4.适合于有人机交互又有计算量的程序,由于程序频繁交互,事件众多,是由多线程可以减少编写此类程序的困难,提高程序吞吐量。

  

posted @ 2019-04-11 09:51  给你一个公主抱  阅读(588)  评论(0编辑  收藏  举报