在实现线程的过程中,我们经常会写类似于这样的代码:{ mutex_.lock(); //XXX if(...) 语句; //XXX mutex_.unlock();}虽然这段代码是正常的加锁解锁,但是有时候我们难免会出现一些低级错误,例如把 忘了写...
分类:
系统相关 时间:
2014-10-08 04:01:04
阅读次数:
379
18.争取使类的接口完整并且最小。
类的用户接口是指使用这个类的程序员所能访问得到的接口,典型的接口里只有函数存在,封装好类的数据成员。
完整是指接口中包含所有 合理的操作的函数。最小是指函数尽可能少且功能不重复。
接口中的函数要少的原因:接口中函数越多,越让其他人难以理解,函数多了会让人混淆。函数多了难以维护,更难维护与升级。长的类定义会导致长的头文件,浪费大量编译时间。
19....
分类:
编程语言 时间:
2014-10-08 02:41:24
阅读次数:
232
生产者,消费者问题是有关互斥锁(MutexLock)、条件变量(Condition)、线程(Thread)的经典案例;描述的问题可以叙述为 生产者往buffer中投放产品,而消费者则从buffer中消费产品。生产着消费者问题的难点在于:为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区投放或者消费...
分类:
系统相关 时间:
2014-10-08 02:39:14
阅读次数:
304
类似JAVA,C++,PHP也有面向对象,关于类,对象,继承,封装...的概念也类似,所以这里直接来说明PHP面向对象的用法。一.类的声明 class Person{ //成员属性 //成员属性前必须有关键字修饰,最起要有个var //成员属性不要使用资源类型和空类型(resou...
分类:
Web程序 时间:
2014-10-08 00:11:44
阅读次数:
221
一、Servlet+JSP+JavaBean开发模式(MVC)介绍 Servlet+JSP+JavaBean模式(MVC)适合开发复杂的web应用,在这种模式下,servlet负责处理用户请求,jsp负责数据显示,javabean负责封装数据。 Servlet+JSP+JavaBean模式程序各个....
分类:
编程语言 时间:
2014-10-07 23:52:14
阅读次数:
351
C#中类和结构相似,但结构缺乏某些功能,eg:继承。结构是个值类型,因此创建结构要比创建类的速度要快。如果你有一些紧凑循环,需要在其中创建大量新数据结构,则应考虑使用结构而不是类。结构还用于封装数据字段组,例如网格上点的坐标或矩形的尺寸。下面是两个结构:public struct StructWit...
分类:
其他好文 时间:
2014-10-07 22:36:44
阅读次数:
240
策略模式——定义算法族,分别封装起来,让它们之间能够互相替换,此模式让算法的变化独立于使用算法的客户。 策略模式是说,针对一种计算,定义一系列的算法,由用户决定详细使用哪一个算法完毕计算。 比方,提供一个计算银行存款利率的接口,对于不同的存款方式(活期、一年定期、两年定期),提供不同的算法实现类,由...
分类:
编程语言 时间:
2014-10-07 22:30:34
阅读次数:
225
生产者消费者问题是计算机中一类重要的模型,主要描述的是:生产者往缓冲区中放入产品、消费者取走产品。生产者和消费者指的可以是线程也可以是进程。 生产者消费者问题的难点在于: 为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区,它就是所谓的临界资源。 生产者往缓冲区放物品时,如果缓冲区已满,那么需要等...
分类:
系统相关 时间:
2014-10-07 22:12:34
阅读次数:
305
我们不止一次写过这种代码: { mutex_.lock(); //XXX if(....) return; //XXX mutex_.unlock();
} 显然,这段代码中我们忘记了解锁。那么如何防止这种情况,我们采用和智能指针相同的策略,把加锁和解锁的过程封装在一个对象中。 实现“对象生命期”等...
分类:
系统相关 时间:
2014-10-07 21:53:24
阅读次数:
215
一、cobbler简介cobbler是实现自动化安装操作系统的工具。它解决了PXE安装时的弊端(只能实现单一操作系统的安装)。实际上,cobbler是对PXE二次封装可实现多版本,多环境操作系统安装的高级抽象工具。工作原理大致如下:实际上,cobbler是对PXE的二次封装。cobbler可以自动的..
分类:
其他好文 时间:
2014-10-07 21:20:44
阅读次数:
409