浅谈异步编程

了解一下并发,并行,异步,同步的概念
介绍async

(1). 并发和并行

计算机可以执行多项任务。
回调函数可以实现异步方式。

  • 如果是单核处理器,计算机可以通过分配时间片方式让一个任务执行一段时间。然后切换到另一个任务。也就是进程,或者线程的上下文切换。
  • 如果是多核处理器,可在不同核心上真正的并行执行任务,而不用通过分配时间片方式。这就是并行。
  • 并发说白了就是多个事件在同一时间间隔内发生。
  • 并行说白了就是多个事件在同一时刻发生。指的是同时发生的两个并发事件。
(2).同步和异步

是两种不同的编程模型

  • 同步(Synchronous)是等前一个任务执行完后再进行下一个任务。同步没有并发和并行的概念。同步也有并行概念,这是网友回复的,比如micosoft
  • 异步(Asynchronous)不同的任务之间,不会相互等待。

通过异步编程方式,可以做到单线程并发。

所以这后面就设计到了一个选择问题,是选用多线程编程还是单线程异步编程。就成了问题,如果现在只能用单线程,就用单线程异步编程挺好。

我们再了解几个知识点:
1.进程和线程的区别
进程是操作系统中运行的程序,而线程是CPU调度和执行的单位;
2.线程有几种状态,分别是什么
有五种状态,分别是新建,就绪,运行,阻塞和死亡状态;

(3).Promise

1.其实就是字面意思,也就是承诺,承诺这个请求会在未来某个时间返回数据
2.promise链式调用,不同于回调函数callback的层层嵌套。可读性更好。

(4).async

基于promise之上的一个语法糖,让异步操作更加简明
异步函数就是指返回为promise 对象的函数,比如fetch()就是异步函数。异步函数中再调用其他的异步函数。


下面说说openmp和ppl以及tbb

1.OPENMP

https://zhuanlan.zhihu.com/p/397670985
https://blog.csdn.net/tlqtangok/article/details/95875455

2.PPL

Microsoft
微软自家的并行库,ppl只能在windows上用不能跨平台。
https://blog.csdn.net/qq_28087491/article/details/118992396

3.TTB

intel
ppl和tbb两个并行运算库功能相似,如果需要跨平台则选择tbb, 否则选择ppl。ppl在任务调度上比tbb强大,tbb由于设计上的原因不能做到任务的连续执行以及任务的组合,但是tbb有跨平台的优势。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜夜夜Best

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

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

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

打赏作者

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

抵扣说明:

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

余额充值