并发编程-概念部分-1

2018-09-01 05:39:28来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

什么是进程和什么是线程?

  进程:操作系统进行资源分配的最小单位。其中资源包括:CPU、内存空间、磁盘IO等。

     同一进程中的多条线程共享该进程中的全部系统资源,而进程与进程之间相互独立。

  线程:CPU调度的最小单位,必须依赖进程而存在。

 

进程和线程的区别:

  定义:进程是程序运行的一个实体的运行过程,是系统进行资源分配和调度的独立单位。线程是进程运行和执行的最小调度单位。

  活泼性:进程不活泼(只是线程的容器)。线程活泼,随时可以创建和销毁。

  系统开销:进程创建、撤销、切换开销大,资源要重新分配和收回。线程相对于进程仅保存少了寄存器内容,开销小,在进程的地址空间执行代码。

  拥有资产:进行是资源拥有的基本单位。线程相对于进程来说基本上不拥有资源,但会占用CPU。

  调度:进程仅是资源分配的基本单位。线程是独立调度、分派的基本单位。

  安全性:进程之间相对比较独立,彼此不会互相影响。线程共享同一个进程下的资源,可以相互通信和影响。

 

什么是并行运行?

  并行运行可分为两种情况:  

    1、程序同时开启的运行中的线程数<=CPU数量*CPU的核心数量。

    2、程序同时开启的运行中的线程数<=CPU数量*CPU的线程数量。

  举一个例子:高速公路A是并排8车道。那么最大并行车辆就是8辆。当在A公路同时并排走的车辆小于等于8辆时,车辆就可以并行运行。CPU也是这个原理,一个CPU相当于一个A高速,核心数或线程数就相当于并排可以通行的车道。多个CPU就相当于并排有多条高速公路,而每个高速公路并排有多个车道。

 

什么是并发运行?

  并发运行也可分为两种情况:

    1、在单核处理器中同时处理多个任务(这里的同时是指逻辑上的同时)

    2、在多核处理器中同时处理多个任务(这里的同时是指物理上的同时)

  并发与并行的概念重要的区别就是“一段时间”和“同一时刻”。并发是指在同一段时间内同时做多个事情,比如在1点到两点洗碗,洗衣服等。而并行是指在同一时刻做多个事情。如果我一点左手画圆右手画方。

 

什么是吞吐量?

  吞吐量是指对网络、设备、端口、虚电路或其他设施,单位时间内成功地传送数据的数量(以比特、字节、分组等测量)。

  网络吞吐量:

    某个时刻,在网络中的两个节点之间,提供给网络应用的剩余带宽,即没有丢帧的情况下,设备能够接受的最大速率。

    吞吐量的大小主要由防火墙内网卡,及程序算法的效率决定。程序算法会是防火墙系统进行大量运算,导致通信量大打折扣。

  系统吞吐量:

    系统在单位时间内所处理的信息量,以每个时间段所处理的进程数来度量。

    影响吞吐量的因素:

      1、存储设备的存取速度,即从存储器读出数据或数据写入存储器所需的时间。

      2、CPU性能:时钟频率、每天指令所花的时钟周期数(CPI)、指令条数。

      3、系统结构,如并行处理结构可增大吞吐量。

 

高并发编程的意义及好处:

  1、充分利用CPU的资源

    如同坐地铁,有人只坐地铁,而有人实现坐地铁时候看书,这样相当于同样的时间实现了更多的事。

  2、加快响应用户的时间

  3、使代码模块化,异步化,简单化

 

高并发,多线程要注意的问题:

  1、线程之间的安全性。

  2、线程之间的死循环过程。

  3、线程太多了会将服务器资源耗尽形成死机宕机。

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:轻松理解 Java HashMap 和 ConcurrentHashMap

下一篇:solr7.4.0+mysql+solrj(简而优美)