程序中 异步和同步是啥意思?

程序中 异步和同步是啥意思?,第1张

异步调用是通过使用单独的线程执行的。原始线程启动异步调用,异步调用使用另一个线程执行请冲轿求,而与此同时原始的线程继续处理。

同步调用则在继含判枝续之前必须等待响应或返回值。如果不允谈敏许调用继续即无响应或返回值,就说调用被阻塞了,不能继续执行。

同步和异步是开发技术中的两个概念,计算机通过解析和运行程序完成相应的 *** 作。在程序执行过程中会涉及同时处理多个任务或者同一时间只处理一个任务的情况。在前面的章节中我们介绍过什么是进程和线程,一个进程中包含多个执行任务的线程。

以用户登录为例,登录任务是在一个登录线程中执行的,登录任务执行过程中除了验证用户名和密码是否正确外,还需要处理其他子任务,例如从服务器获取用户信息,更新本地缓存信息等。这些子任务通常会在新开辟的子线程里执行。执行登录的线程可以称为主线程,执行获取用户信息的线程称为子线程。在一个登录 *** 作过程中分别执行两个任务,这个过程就叫作异步处粗巧理。异步处理不会造成线程阻塞,相当于各自处理各自的任务。如果所有的任务都在一个线程中处理,那就会出现资源占用过多和响应时间过长的情况,例如我们在使用一些岩滚键安卓APP时偶尔会出现应用程序闪退的情况,这有可能是因为出现了线程死锁。

同步处理比较好理解,就是同一时间只执行一个简单任务,任务处理完后再执行第二个任务,同步处理适用于一些顺序执行的任务,例如流水线处理就是典型的同步处理,流水线上的一个环节处理完成后再处理备数下一个环节的任务。

一、传输单位不同

1、异步:异步传输是以字符为传输单位,每个字符都要附加 1 位起始位和 1 位停止位,以标记一个字符的开始和结束,并弯扰以此实现数据传输同步。

2、同步:同步传输是以数据块为传输单位。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列(如16位或32位CRC校验码),以便对数据块进行差错控制。

二、含竖闹轿义不同

1、异步:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

2、同步:发余肆送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

三、模式不同

1、异步:异步是非阻塞模式。

2、同步:同步是阻塞模式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12273272.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存