并发异步与阻塞

处理任务.CPU资源

一、 串行,并行,并发

1、处理任务
  1. 串行:一个时间段内,执行一个任务的同时不能执行其他任务,只能等到第一个任务完成后才能进行第二个。单核单线程
  2. 并行:一个时间段内,执行个任务,可以同时运行两个或多个任务,线程互不抢占CPU资源,可以同时进行,这就被称之为并行。 多核多进程
  3. 并发:一个时间段中有几个任务都处于已启动运行到运行完毕之间,任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行多核多进程多线程, 
2、依赖

并发(Concurrent)
        并发可以在一个CPU处理器和多个CPU处理器系统中都存在。(多个CPU处理器系统其中的一个CPU也可以进行并发操作)

并行(parallel)
        并行在多个CPU处理器系统存在。

3、CPU资源

并发(Concurrent)
        并发过程中,线程之间会去抢占CPU资源,轮流使用。(其实CPU会多个各个线程公平的分配时间片和进行执行。)

并行(parallel)
        并行过程中,线程间不会抢占CPU资源。(因为是多个CPU处理器,各做各的。)

二、异步同步

      同步和异步关注的是消息通信机制(synchronous communication/ asynchronous communication)


1、同步

        同步就是协同步调,按预定的先后次序进行运行,发出一个功能调用时,在没有得到结果之前,该调用就不返回,不会出现上面代码没有执行完就执行下面的代码.
        缺点:是解析的速度没有异步的快

2、异步        

        异步是接取一个任务,直接给后台,再接下一个任务,执行结果如何,当前线程不管,接着往下顺序执行代码。

         缺点:没有顺序 ,谁先读取完先执行谁的 ,会出现上面的代码还执行下面的就已经出来了,会报错
        异步的概念和同步相对。当一个异步过程调用发出后,调用者不能立刻得到结果。实际处理这个调用的部件在完成后,通过状态、通知和回调来通知调用者。

三、阻塞和非阻塞

       阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态,区别在于 会不会阻塞当前程序运行

   1、 阻塞

        调用是指调用结果返回之前,当前线程会被挂起。函数只有在得到结果之后才会返回。


   2、 非阻塞

        指在不能立刻得到结果之前,该函数不会阻塞当前线程,而会立刻返回。
        
* 在进程通信层面, 阻塞/非阻塞, 同步/异步基本是同义词,阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。

四、 进程和线程


      一个程序运行起来后,代码+用到的资源 称之为进程,它是操作系统分配资源的基本单元。线程是进程的一个实体,是CPU调度和分派的基本单位

1、进程

        是指系统进行资源分配和调度的一个独立单位.在执行过程中拥有独立的内存单元, 同一进程的所有线程共享该进程的所有资源


2、线程

        是指进程的一个实体,是CPU调度和分派的基本单位,即真正在cpu上运行的是线程,它是比进程更小的能独立运行的基本单位.线线程不能够独立执行,必须依存在进程中, 共享内存
一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。


  *线程是最小的执行单元,进程是最小的资源管理单元, 线程执行开销小,但不利于  资源的管理和保护;而进程正相反。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

**星光*

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值