摘要: 内存池(Memory Pool)是一种内存分配方式。 通常我们习惯直接使用new、malloc等API申请分配内存,这样做的缺点在于:由于所申请内存块的大小不定,当频繁使用时会造成大量的内存碎片并进而降低性能。 内存池则是在真正使用内存之前,先申请分配一定数量的、大小相等(一般情况下)的内存块留作备用。当有新的内存需求时,就从内存池中分出一部分内存块,若内存块不够再继续申请新的内存。这样做的一个显著优点是尽量避免了内存碎片,使得内存分配效率得到提升。 通俗的讲就是申请内存空间,不释放,每次都循环利用。比如你可以申请多个char数组。(最好大一点,根据需要)以后的程序里面需要使用char... 阅读全文
posted @ 2012-09-24 20:56 既有缘 阅读(919) 评论(0) 推荐(0) 编辑
摘要: uml 2UML中数据流图,用例图,类图,对象图,角色图,活动图,序列图详细讲述保存供参考 这个文章,是我在急需的情况下在园子里搜索到的,原创作者是:DO-websoftware,为了自己看方便,所以复制到我的空间,希望原创者不要介意哦~~~~很详细的介绍,对我的帮助很大,谢谢哦。。。。类图,对象图,角色图:一、UML中基本的图范畴:在 UML 2 中有二种基本的图范畴:结构图和行为图。每个 UML 图都属于这二个图范畴。结构图的目的是显示建模系统的静态结构。它们包括类,组件和(或)对象图。另一方面,行为图显示系统中的对象的动态行为,包括如对象的方法,协作和活动之类的内容。行为图的实例是活动图 阅读全文
posted @ 2012-09-24 11:36 既有缘 阅读(268) 评论(0) 推荐(0) 编辑
摘要: UML类图几种关系的总结在UML类图中,常见的有以下几种关系:泛化(Generalization),实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)1.泛化(Generalization)【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。【箭头指向】:带三角箭头的实线,箭头指向父类2.实现(Realization)【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.【箭头. 阅读全文
posted @ 2012-09-24 11:00 既有缘 阅读(90) 评论(0) 推荐(0) 编辑
摘要: linux常用svn命令原地址:http://www.rjgc.net/control/content/content.php?nid=4418 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn co 2、往版本库中添加新的文件svn add file例如:svn addtest.php(添加test.php)svn add *.php(添加当前目录下所有的php文件) 3、将改动的文件提交到版本库svn commit -m “LogMessag 阅读全文
posted @ 2012-09-24 10:16 既有缘 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 智能指针能够使 C++ 的开发简单化,主要是它能够像其它限制性语言(如 C# 、 VB )自动管理内存的释放,而且能够做更多的事情。 1、 什么是智能指针 智能指针是一种像指针的 C++ 对象,但它能够在对象不使用的时候自己销毁掉。我们知道在 C++ 中的对象不再使用是很难定义的,因此 C++ 中的资源管理是很复杂的。各种智能指针能够操作不同的情况。当然,智能指针能够在任务结束的时候删除对象,除了在程序之外。许多库都提供了智能指针的操作,但都有自己的优点和缺点。 Boost 库是一个高质量的开源的 C++ 模板库,很多人都考虑将其加入下一个 C++ 标准库的版本中。Boost 提供... 阅读全文
posted @ 2012-09-18 22:32 既有缘 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 首先保证我们拿到的是最新代码,运行Linux代码 svnupIndex/然后找出要撤销的确切版本:Linux代码 svnlog--limit10Index/tpl/css/global.css根据log怀疑是16976版本改坏的,比较一下:Linux代码 svndiff-r16975:16976Index/tpl/css/global.css 发现16976有错误撤销16976版本的改动:Linux代码 svnmerge-r16976:16975Index/tpl/css/global.css为了保险起见,再次确认合并的结果Linux代码 svndiffIndex/tpl/css/global 阅读全文
posted @ 2012-09-18 14:55 既有缘 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 有的时候仅仅依靠锁住共享资源来使用它是不够的。有时候共享资源只有某些状态的时候才能够使用。比方说,某个线程如果要从堆栈中读取数据,那么如果栈中没有数据就必须等待数据被压栈。这种情况下的同步使用互斥锁是不够的。另一种同步的方式--条件变量,就可以使用在这种情况下。条件变量的使用总是和互斥锁及共享资源联系在一起的。线程首先锁住互斥锁,然后检验共享资源的状态是否处于可使用的状态。如果不是,那么线程就要等待条件变量。要指向这样的操作就必须在等待的时候将互斥锁解锁,以便其他线程可以访问共享资源并改变其状态。它还得保证从等到得线程返回时互斥体是被上锁得。当另一个线程改变了共享资源的状态时,它就要通知正在等 阅读全文
posted @ 2012-09-18 14:30 既有缘 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 构造函数:template <class... Types>void emplace_back(Types&&... _Args);示例:#include <vector>#include <string>#include <iostream> struct President{ std::string name; std::string country; int year; President(std::string && p_name, std::string && p_country, int 阅读全文
posted @ 2012-09-15 16:46 既有缘 阅读(1028) 评论(0) 推荐(1) 编辑
摘要: http://blog.csdn.net/fengbangyue/article/details/5643303 阅读全文
posted @ 2012-09-15 16:12 既有缘 阅读(82) 评论(0) 推荐(0) 编辑
摘要: gdb对于多线程程序的调试有如下的支持:线程产生通知:在产生新的线程时, gdb会给出提示信息(gdb) runStarting program: /root/thread[New Thread 1073951360 (LWP 12900)][New Thread 1082342592 (LWP 12907)]---以下三个为新产生的线程[New Thread 1090731072 (LWP 12908)][New Thread 1099119552 (LWP 12909)]查看线程:使用infothreads可以查看运行的线程。(gdb) info threads 4 Thread 1099 阅读全文
posted @ 2012-09-13 16:10 既有缘 阅读(3082) 评论(0) 推荐(0) 编辑