欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

并发编程-概念部分-1

程序员文章站 2023-04-07 08:17:43
什么是进程和什么是线程? 进程:操作系统进行资源分配的最小单位。其中资源包括:CPU、内存空间、磁盘IO等。 同一进程中的多条线程共享该进程中的全部系统资源,而进程与进程之间相互独立。 线程:CPU调度的最小单位,必须依赖进程而存在。 进程和线程的区别: 定义:进程是程序运行的一个实体的运行过程,是 ......

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

  进程:操作系统进行资源分配的最小单位。其中资源包括: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、线程太多了会将服务器资源耗尽形成死机宕机。