请高手解释,同步和异步的区别
一直没有弄明白 问题点数:0、回复次数:24Top
1 楼runall(龙行天下)回复于 2004-05-03 09:44:44 得分 0
同步如同你可以一边吃饭一边看电视
而异步就是你在喝完酒后再吃菜
同步消息就是发出消息后不等待处理消息的函数返回继续向下运行
异步消息就是要等待消息处理函数返回后才可以向下运行Top
2 楼Elusive(落)回复于 2004-05-03 09:54:29 得分 0
同步是接力跑
异步瞎跑Top
3 楼SatanLi1982(红魔)回复于 2004-05-03 10:03:13 得分 0
简单的说同步是一问一答,就像函数调用后必须返回似的,异步则不需要。Top
4 楼lyanh()回复于 2004-05-03 10:38:39 得分 0
顶一下Top
5 楼connie2003(川川)回复于 2004-05-03 14:31:06 得分 0
处理多线程就是同步,单线程就是异步。
同步就是几个函数同时处理,其间的时间间隔为1/10秒,Top
6 楼wwwllg(野蛮人)回复于 2004-05-03 17:28:15 得分 0
同步就是一件事,一件事情的做。
异步就是,做一件事情,不引响做其他事情。
例如:吃饭和说话,只能一件事一件事的来,因为只有一张嘴。
吃饭和听音乐是异步的,因为,听音乐并不引响我们吃饭。Top
7 楼halk(不当老大已经很久了)回复于 2004-05-03 18:05:18 得分 0
倒~~~~~~~~~楼上几位都很形象!Top
8 楼yangrudy(*Start From Scratch)回复于 2004-05-03 19:45:08 得分 0
我想你这回应该明白啦,呵呵Top
9 楼lyanh()回复于 2004-05-04 17:08:43 得分 0
同步执行模式:
所谓同步执行模式,是指语句在同步执行模式下,将始终保持对程序流的控制,直至 程序结束。如查询操作,客户机上的应用程序在向服务器发出查询操作的指令后,将 一直等待服务器将查询结果返回客户机端,然后才继续进行下一步操作。
众所周知,应用程序要从一个大表中删除所有的记录将是非常耗时的,如果应用程序 采用的是单线程(thread)同步执行方式,某次删除工作很可能耽误其他重要工作的完 成。如果应用程序等待的是远程任务,那么远程服务器失败或网络故障或一些无法预 知的情况都可能使应用程序无限期地等下去,这是同步执行最大的缺陷。
但是同步执行模式可以简化程序编制的复杂性。程序员可以不用过多地了解比较复杂 的ODBC 2.0 API 的使用,而只需使用 ODBC 的同步执行模式或使用数据控制项和数据库对象变量来编写应用程序,可以提高开发效率,但程序运行速度比不上异步执行 模式的速度。
异步执行模式:
所谓异步执行模式,是指语句在异步执行模式下,各语句执行结 束的顺序与语句执行开始的顺序并不一定相同。例如 查询操作,客户机上的应用程序在向服务器发出了查 询操作的指令后,将立刻执行查询语句指令的下一条 语句,而不需要等到服务器将查询结果返回客户机端。 异步执行方式使应用程序能摆 脱单个任务的牵制,提高了灵活性和应用程序的执行 效率。但异步执行模式也存在一些问题,如它增加了 编程的复杂性,特别是编写互用性(interoperable)要求较高 的程序。
在负荷很重的客户/服务器系 统中,适宜采用异步执行模式。在这种环境下,时间 延迟频繁且漫长,相比之下异步执行的开销微不足 道。但是,如果应用运行的环境比较复杂,则必须建 立一套完整的机制,周期性地检查函数执行的状态, 以决定下一步执行方案。进行周期的检查可以有多种方法,如在 应用中设置计时器并处理WM_TIMER信息等。
虽然使用异步执行模式在编程 序时十分复杂,但可以实现多任务并行执行,使执行的效率大大提高。
选择并设置执行模式 在应用程序开发中选择同步模式还是异步模式,是一个比 较复杂的层次。当查询或对数据库的修改相对简单时,同步执行模式是一种 很好的选择,它能够在几秒 或更少的时间内返回结果数据。另外,在应用程序获 得结果集前不能继续执行时,根本不必要使用异步执 行模式。在复杂查询情况下,特别是复杂的多行数据 库的UPDATE 或DELETE 操作,可能需要很长的时间才能完成, 需采用异步执行模式,让用户可以同时对程序的其他 部分进行操作。
对于一般程序员来说,如果他对同步执行模式与异步执行模式不了解, 他往往会在对服务器发出一个操作语句(查询或读取一条记录等 操作)后,立该引用服务器返回的执行结果,或者对该 结果进行下一步操作,这是很危险的。因为,在异步 执行模式下,客户机上的后续语句是在该操作语句发 出后接着执行的,但由于各种原因,服务器不一定能 执行完该操作语句,并在后续语句执行前将结果返回 客户机。因此,后续语句在引用前一操作语句的执行 结果时,往往会因为该执行结果并不存在而引用了错 误的值,造成系统错误或死锁,所以在实际应用中应 根据具体情况慎重选择执行模式。
Top
10 楼Mackz(在相互)回复于 2004-05-06 00:09:13 得分 0
完全相反的两种说法,呵呵。Top
11 楼dongfa(一桶江湖( http://www.codelive.net ))回复于 2004-05-08 13:05:34 得分 0
楼上各位观点不一致呀~~~Top
12 楼wwwllg(野蛮人)回复于 2004-05-08 13:14:46 得分 0
呵呵,各抒几见撒,
Top
13 楼woshilaolei(tiger)回复于 2004-05-08 14:39:16 得分 0
在unix中的socket是同步模式,即需要等待到回答才会继续
在windows中的winsock是异步模式,即不需要等待可以往下执行,这就好像在等待一个消息。Top
14 楼GodInNight(夜游神)回复于 2004-05-08 15:33:53 得分 0
回复人: lyanh() ( ) 信誉:100
正解!Top
15 楼wyxy520(不做陌生人)回复于 2004-05-08 16:48:02 得分 0
同步就是你自己去买东西,买没买到,当场就可以知道;
异步就是你叫别人帮你买东西,买没买到,要等他回来告诉你才知道Top
16 楼unchallenger()回复于 2004-05-09 23:54:13 得分 0
昏了,应该具体问题具体分析Top
17 楼mzg3(radom)回复于 2004-05-10 09:34:51 得分 0
烤!
这重烂问题用得着如此多人解释吗?,而且还各不相同!
(回复人: wwwllg(wwwllg) ( ) 信誉:99 2004-05-08 13:14:00 得分:0
呵呵,各抒几见撒,)
什么意思嘛,还带一个星星呢!
编程上的同步|异步跟语意上的同步是刚好相反的.现在作一个了结:
runall(龙行天下) ,connie2003(川川) 错误!
观点相反的正确!
这是MSDN上的解释:
在客户端发出一个方法调用后,客户端将被阻塞,直至调用返回为止,这种方式被称为同步处理。也就是说,在客户端等待期间它不能执行任何代码。若使用异步处理,就可以在等待期间让客户端做其它的事情。
多线程可认为是异步的.
单线程可认为是同步的!
Top
18 楼runall(龙行天下)回复于 2004-05-12 11:15:02 得分 0
误人子弟Top
19 楼wwwllg(野蛮人)回复于 2004-05-12 14:00:20 得分 0
烤!
这重烂问题用得着如此多人解释吗?,而且还各不相同!
(回复人: wwwllg(wwwllg) ( ) 信誉:99 2004-05-08 13:14:00 得分:0
呵呵,各抒几见撒,)
什么意思嘛,还带一个星星呢!
编程上的同步|异步跟语意上的同步是刚好相反的.现在作一个了结:
runall(龙行天下) ,connie2003(川川) 错误!
观点相反的正确!
这是MSDN上的解释:
在客户端发出一个方法调用后,客户端将被阻塞,直至调用返回为止,这种方式被称为同步处理。也就是说,在客户端等待期间它不能执行任何代码。若使用异步处理,就可以在等待期间让客户端做其它的事情。
多线程可认为是异步的.
单线程可认为是同步的!
------------------------>
不是我说你,你的水平还差远了。
msdn上的当然是比较准确。
但是,你根本没理解同步和异步的真正意义,也只是字面认识。
----------------------------------->
同步就是一件事,一件事情的做。
异步就是,做一件事情,不引响做其他事情。
例如:吃饭和说话,只能一件事一件事的来,因为只有一张嘴。
吃饭和听音乐是异步的,因为,听音乐并不引响我们吃饭。
----------------------------------->
这里的例子,完全正确,只是你不能理解。
你只有一张嘴,有两件事情等你着去做,嘴是一个资源,说话,和吃饭相当于两个工作。
这是典型的需要同步的案例,只是我们人自己完成了这个同步,你先停止咀嚼,然后说话。
同理,你吃饭的时候,可以边听音乐。相当于两工作线程,互不相于,你(人)这个对象可以做两个行为,吃和听。所以是异步的。
Top
20 楼lion1900(雨后的天空)回复于 2004-05-13 16:41:59 得分 0
同步就是执行直到结果返回
异步就是执行就返回Top
21 楼mzg3(radom)回复于 2004-05-14 09:23:17 得分 0
伤到你了wwwllg,我不该针对你!
/*
runall(龙行天下) ,connie2003(川川) 错误!
观点相反的正确!
*/
你具体看看他们会的帖啊,他们说同步就是同时运行,异步就是一个一个的运行,难道这样你也觉得正确吗?
所以观点相反的基本正确啦!
Top
22 楼dbserver(寻找完美的自我)回复于 2004-09-21 17:36:42 得分 0
好,记个号Top
23 楼weirdy(远古传说)回复于 2004-09-22 10:57:56 得分 0
有时考虑问题不要太深入了,搞得有点像博士考虑1+1一样的.Top
24 楼beyondtkl(大龙驹<*好久没来了,兄弟们好吧。*>)回复于 2004-09-22 11:08:51 得分 0
回复人: runall(龙行天下) ( ) 信誉:100 2004-05-03 09:44:44Z 得分: 0
同步如同你可以一边吃饭一边看电视
而异步就是你在喝完酒后再吃菜
同步消息就是发出消息后不等待处理消息的函数返回继续向下运行
异步消息就是要等待消息处理函数返回后才可以向下运行
------------------
回答有误哦。。。反了Top




