同步线程和异步线程有哪些区别?

 我来答
希文耀6X
2020-08-11 · TA获得超过244个赞
知道答主
回答量:35
采纳率:100%
帮助的人:1.9万
展开全部

就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法。按照这个定义,其实绝大多数函数都是同步调用。但是一般而言,我们在说同步、异步的时候,特指那些需要其他部件协作或者需要一定时间完成的任务。例如Window API函数SendMessage。该函数发送一个消息给某个窗口,在对方处理完消息之前,这个函数不返回。

当对方处理完毕以后,该函数才把消息处理函数所返回的LRESULT值返回给调用者。在一般情况下,创建一个线程是不能提高程序的执行效率的,所以要创建多个线程。但是多个线程同时运行的时候可能调用线程函数,在多个线程同时对同一个内存地址进行写入,由于CPU时间调度上的问题,写入数据会被多次的覆盖,所以就要使线程同步。

异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开始接收的信息,如开始位,同时在结束时有停止位。与同步相对应,异步指的是让CPU暂时搁置当前请求的响应,处理下一个请求,当通过轮询或其他方式得到回调通知后,开始运行。

异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这时,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。    

文人青999
2020-09-18 · TA获得超过197个赞
知道答主
回答量:2
采纳率:0%
帮助的人:1479
展开全部
同步线程是单一线程,效率低,时间长。异步线程是多个线程,效率高,时间大大缩短。所以,同步比较简单,而异步相对复杂很多。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wally小童鞋
2020-09-11
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
同步线程可当做单线程,异步线程是标准的多线程。同步线程只要客户端请求了,在服务器没有反馈信息之前是一个线程阻塞状态(就是假死状态,不能操作其他方法)。异步线程在客户端请求时,可以执行其他线程,并且在把这个线程存放在他的队列里面,有序的执行。(可以设置线程的数量,当超过最大时会显示等待状态)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
原是北方姑娘

2020-09-07 · 遇见文字,遇见美景,而后我们不再独自一人
原是北方姑娘
采纳数:32 获赞数:26

向TA提问 私信TA
展开全部
对于同步线程,发送请求后需要等待返回,等待返回后才能继续发送下一个请求。对于异步线程,不需要等待返回的,在发送一个请求后随时可发送下一个请求。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式