好贷网好贷款

软件设计中的同步异步单线程多线程优缺点分析

发布时间:2016-12-4 22:32:27 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"软件设计中的同步异步单线程多线程优缺点分析",主要涉及到软件设计中的同步异步单线程多线程优缺点分析方面的内容,对于软件设计中的同步异步单线程多线程优缺点分析感兴趣的同学可以参考一下。

同步还是异步,单线程还是多线程是我们软件开发中经常面临的设计选择,只有准确的区分它们之间的优缺点,才能根据我们的实际应用场景作出正确选择。它们两两组合一共有四种模式,下面就我自己的理解做一些总结分析。  1、同步单线程模式 优点:a)实现简单。b)不用考虑线程间同步互斥问题。 缺点:a)对CPU的使用率不高(容易在进行IO操作或自身等待操作时阻塞),在多CPU时劣势更明显。b)并发性不好,在有的事件需要长时间占用CPU处理的情况下,其他事件会长时间等待得不到处理。  2、同步多线程模式 优点:a)对CPU的使用率较高,在多CPU时优势更明显。b)并发性好,各线程都能根据优先级得到执行。 缺点:a)需要考虑线程间同步互斥问题。b)实现较复杂,不同线程的业务步骤有相互依赖时,需要分解实现成状态机及事件通知驱动模式(或者轮询模式)。  3、异步多线程模式 优点:a)对CPU的使用率高,在多CPU时优势更明显。b)并发性好,各线程都能根据优先级得到执行。 缺点:a)需要考虑线程间同步互斥问题。b)实现复杂,要把所有会导致阻塞的操作转化为异步操作,另外不同线程的业务步骤有相互依赖时,需要分解实现成状态机及事件通知驱动模式(或者轮询模式)。  4、异步单线程模式 优点:a)对CPU的使用率高。b)不用考虑线程间同步互斥问题。 缺点:a)实现较复杂,要把所有会导致阻塞的操作转化为异步操作。b)并发性不好,在有的事件需要长时间占用CPU处理的情况下,其他事件会长时间等待得不到处理。c)在多CPU时不如多线程高效。 简单的说:同步实现简单但是CPU利用率低,异步实现复杂但是CPU利用率高。 单线程不用考虑互斥但是并发性、多CPU利用率低,多线程需要考虑互斥但是并发性、多CPU利用率高。 (完)

上一篇:【分享】android开发该如何提高Android程序的效率
下一篇:QT 多线程程序设计

相关文章

相关评论