同步与异步的概念

来源:互联网 发布:严歌苓 知乎 编辑:程序博客网 时间:2024/04/30 19:51

同步与异步的概念0

请问同步与异步到底什么意思啊?我所见的异步好像就是在主线程开一个新的线程就是异步了,同步就是单线程,是这样的吗?
 
2013年7月01日 22:23
  • Comment添加评论
  • 关注(1)

6个答案按时间排序按投票排序

00

采纳的答案

同步就是在一个主线程里,你要做三件事情,A做完了做B,B完了再做C,是顺序执行的; 

异步就是在一个主线程里,你开了三个线程来分别处理ABC这三件事,这三个子线程在代码调用的时候可能你是先调A再调B和C,但是在执行子线程的时候即使A线程没执行完,线程B和C也会往下执行,让我们看起来好像ABC三个线程是互不干扰的分别在执行。 

很多时候我们会用异步多线程来处理同一业务里的大量数据,好比有一千个订单要处理,如果你用一个线程顺序执行,你就要循环这批订单,一个个处理,消耗非常多时间;但是用多线程你就可以开十几二十个线程异步处理,让效率提高很多。 

另外,异步虽然我们看起来是很多个线程同时在跑,其实对同一CPU来说它在同一时间还是只能处理一个线程的,只是在一个线程里遇到有IO操作等等需要CPU等待的时候,就会切换到另一个线程去执行,加强了使CPU使用率,所以并不是什么时候都适合使用多线程的。

2013年7月02日 09:45
  • Comment7条评论
00

同步就是在一个线程中,比如你想喝咖啡,就要先烧开水,然后泡咖啡!异步就是多个线程,好比是你在等烧开水的时候可以在旁边看报纸!前者有循序关系,后者者无!

2013年7月02日 21:19
  • Comment添加评论
00

同步就像QQ视频聊天,你申请了对方要同意,才能继续数据交换,并且不能给不同的人分别视频。( 
异步就像发消息,不用管对方什么时候看,他能看到的时候能看到,想回复的时候就回复

2013年7月02日 15:23
  • Comment添加评论
00

同步是同一时刻只有一个线程在做,异步就是同一时刻可有多个现在在做。

2013年7月02日 12:26
  • Comment添加评论
00

是的 
单线程一定是同步 
多线程大部分情况是异步

2013年7月02日 11:53
  • Comment添加评论
00

调用者必须等待被调用者执行完毕,即调用者和被调用者是串行执行的关系,叫同步。调用者不等待被调用者执行完毕,调用者与被调用者并行执行,叫异步。


0 0
原创粉丝点击