C#同步与异步

一、相关概念

1.同步异步

同步异步指的是在客户端;

同步:客户端提出了一个请求以后,在回应之前只能等待

异步:客户端提出一个请求后,还可以继续提其他请求

2.阻塞非阻塞

阻非阻塞指的是服务器端;

阻塞:服务器接受一个请求后,在返回结果之前不能接受 其他请求;

非阻塞:服务器接受一个请求后,尽管没有返回结果,还是可以继续接受其他请求。

二、重点详解

1.同步异步

关注的是消息通信机制

同步(主动): 在发出一个调用时,在没有得到结果之前,该调用就不返回,调用者主动等待调用的结果。

比如:你打电话问书店老板有没有《红楼梦》,他说他要查一下才知道,这个时候你不挂电话,直接等他查到结果。

异步(被动) :在调用发出后,这个调用直接返回,没有返回结果,被调用者通过状态、通知来通知调用者。

比如:你打电话问书店老板有没有《红楼梦》,他说他要查一下才知道,这个时候你挂了电话,等他查到结果后再让他打电话回来告诉你。

2.阻塞非阻塞

关注的是程序在等待调用结果(消息,返回值)时的状态

阻塞调用(等) :是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。

意思是,在老板查到有没有那本书之前,你就只在这等着他的结果。

非阻塞调用(不等) :指在不能立刻得到结果之前,该调用不会阻塞当前线程。

意思是,在老板在查的时候,你可以去干点别的事情,偶尔确认一下老板有没有返回结果就行。

三、联系

异步程序背后的最主要的特点就在于:

当出现一个任务像在同步程序一样出现阻塞时,会让其它可以执行的任务继续执行,而不会像同步程序中那样全部阻塞掉。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值