软件设计
无忧V
熟悉Voip / Android / Linux / C / C++ / Python / JS / PHP / Java
展开
-
TCP与UDP各自特点对比
UDP和TCP是我们最常用的两种通信方式,下面就两者之间的特点做一个对比: 1、UDP主要用在实时性要求高以及对质量相对较弱的地方,如流媒体。 2、TCP既然是面向连接的,那么运行环境必然要求其保证可靠性,具有不可丢包、有良好的拥塞控制机制,如http ftp telnet。 3、TCP容易阻塞,UDP容易丢包。 4、TCP是保证质量不保证速度,UDP保证速度但不保证质量。 5原创 2013-09-05 15:28:28 · 5678 阅读 · 0 评论 -
高并发软件设计的几种方式
本文就高并发软件设计中可以考虑使用的一些方法做如下总结: 1)多线程有利于提高CPU占用率,因为软件本身的线程越多,在和系统上其他线程争夺CPU资源时就能分配到更多执行资源,同时也能提高业务处理的并发性。 2)非阻塞IO能够在IO操作条件不成熟时不阻塞在IO调用处,返回继续其他代码的执行,过一阵再进行IO尝试。异步IO能在IO操作执行时不阻塞在IO调用处,返回继续其他代码的执行,等IO操作原创 2013-09-05 15:29:48 · 3511 阅读 · 0 评论 -
《重构》读书总结
前段时间我学习了《重构》这本书,在学习过程中,我就每个重构方法的目的就自己的理解做了一些总结,如下:1 重新组织函数1.1 提炼函数(Extract Method)解释:如果一个函数过于复杂,就把它拆分为多个职责清晰的小函数。目的:1、复杂的函数难于理解。2、拆分成小函数后能够提高小函数的复用度。1.2 内联函数(Inline Method)解释:如果原创 2013-09-05 15:37:53 · 1890 阅读 · 2 评论 -
软件设计中的同步异步单线程多线程优缺点分析
同步还是异步,单线程还是多线程是我们软件开发中经常面临的设计选择,只有准确的区分它们之间的优缺点,才能根据我们的实际应用场景作出正确选择。它们两两组合一共有四种模式,下面就我自己的理解做一些总结分析。 1、同步单线程模式优点:a)实现简单。b)不用考虑线程间同步互斥问题。缺点:a)对CPU的使用率不高(容易在进行IO操作或自身等待操作时阻塞),在多CPU时劣势更明显。b)并发性不好,在原创 2013-09-05 15:22:15 · 6189 阅读 · 0 评论 -
模块间通信时对象序列化方式比较
软件主要是由一个个的模块,以及模块间的通信组成的。不论哪种模块间通信方式,其底层承载的都是码流形式的数据。因此,模块间通信其中一个重要工作是把模块中的数据对象序列化成码流,然后发送到其他模块,再反序列化还原成数据对象,以此完成通信过程。 对象的序列化方式主要有以下两种代表类型:1、XML格式序列化优点:消息可读性好,可以在不同平台间通信,方便实现者做各种扩展增强,适用于信息较复杂的原创 2013-09-05 15:29:05 · 1498 阅读 · 0 评论