你的位置:首页 > 知识课堂 > 正文

异步处理

发布时间:2013-07-06

目前,异步处理在当代的应用可谓是越来越广泛,异步处理是值得我们好好学习的,现在我们就深入了解异步处理。

异步处理
异步处理

异步处理就是按照不同步的程序处理问题。异步处理与同步处理是对立的,而产生他们的是多线程或者多进程。

异步处理的好处就是提高设备使用率,从而在宏观上提升程序运行效率,但是弊端就是容易出现冲突操作和数据脏读。同步则刚好相反,同步是一种降低设备使用率,在宏观上降低了程序的运行效率,而且很多系统或者是运环境在处理同步的时候为了维持同步的有效性也会付出许多格外的系统资源开支,对性能影响相当大。但是同步保证了程序运行的正确性与数据的完整性。

异步处理如何保证可靠性?

项目做多了,发现在通信行业,证券行业,以及一些特殊行业,特殊领域,对系统的性能要求非常高,单条数据的处理甚至可以到纳秒,这个时候我们一般采取异步处理的方式解决问题。但是异步处理带给程序使用者的好处时,相应及时,很短时间的等待,然后可靠性的保证方面却需要一些措施处理,比如处理失败怎么办,处理不好,影响系统功能的质量?

电子元件技术网网友一:

我现在在做android ,用Handler进行后台数据处理,handler是在主线程中处理的,一般对处理长时间操作好像要加多线程实现,还有一般都要在页面先设置默认值,以及对超时等等处理.

电子元件技术网网友二:

我觉得,异步处理没有办法保证可靠性。
如果某个应用需要数据同步的话,那项目的设计者肯定是在同步的基础上去想办法提升性能。而不是直接改用异步处理。理由很简单,银行不会为了减少用户的等待时间,而放弃同步数据。只能是在保证数据安全的前提下,去尽可能的缩短响应时间。

异步处理
异步处理

电子元件技术网网友三:

异步处理都要求有完美的错误处理机制,做到对可提交,错可回滚。甚至连日志(包括数据库日志和文件日志)

都要求和业务数据一样的保存期限。这样做到出错时可以追根溯源,打官司也不怕-----------

电子元件技术网网友四:

和异步处理相关的,有一个思考方向:

如果同步处理数据时有不可忍受的性能问题,就要在能容忍的范围内放弃数据的一部分正确性。

实例没有,只有一个其他方面和这个思路类似的例子:

网站有大量的数据,在查询时需要分页。如果计数并算出页数,则造成表扫描,产生不可容忍的性能以至于可用性问题。这时给出“估算”的页数或者不给页数,可能是更好的选择,虽然没有了这部分数据的准确性。

电子元件技术网网友五:

异步与同步是对立的,而产生他们的是多线程或者多进程。

异步的好处就是提高设备使用率,从而在宏观上提升程序运行效率,但是弊端就是容易出现冲突操作和数据脏读。

同步则刚好相反,同步是一种降低设备使用率,在宏观上降低了程序的运行效率,而且很多系统或者是运行环境在处理同步的时候为了维持同步的有效性也会付出许多格外的系统资源开支,对性能影响相当大。但是同步保证了程序运行的正确性与数据的完整性。

关于异步与同步的问题,其实就是一个多线程或者多进程的问题,对于多线程就复杂了,这里只讨论一下这两者。

其实同步异步问题一直是多线程处理机制中的难点,对于一个系统而言,必须要保证系统的效率,又要保证运行,所以要对系统运行进行分析才能够确定哪些地方是应该异步操作,而哪些地方是应该同步操作的。

对于有大量访问,但是数据与程序运行彼此互相不干扰,或者对数据完整要求不严格则用异步,对于只有少量访问但是要求数据绝对正确完整,则使用同步访问。

对于有大量访问而数据要求完整性也相当高的地方,那么这个就只能仔细分析内部模块的每一行代码,哪一块是造成冲突以及在异步环境下会破坏数据完整性的地方用同步锁起来,或者什么时机有可能造成冲突的地方,在那个时机进行同步,其它时间异步。对于这种分析,你需要对多线程的运行有深刻理解以及对业务模块深入的分析才能做出的,这是一个相当难的工作,也是迄今为止广大程序都头痛的问题。

综上所述,本文已为讲解异步处理,相信大家对异步处理的认识越来越深入,希望本文能对各位读者有比较大的参考价值.

浏览过本文<异步处理>文的人也浏览了

三相异步电动机常见故障分析与处理
http://club.cntronics.com/space.php?uid=169670&do=blog&id=25168

同步电路和异步电路的区别
http://baike.cntronics.com/abc/635

三相异步电动机的工作原理
http://baike.cntronics.com/abc/1169

特别推荐
技术文章更多>>
技术白皮书下载更多>>
热门搜索
 

关闭

 

关闭