本文对pthread_mutex_t 进行简易的封装;互斥锁主要用于互斥,描述的是一种竞争关系,主要是一个 一种资源或者代码, 在一段时间内 至多能被一个程序访问。而条件变量主要用于线程间同步, 描述的是一种协作关系。Linux中互斥锁的应用比较简单,通用的有以下几个函数:1 int pthread...
分类:
系统相关 时间:
2014-10-06 22:44:20
阅读次数:
241
声明代码如下: 1 #ifndef CONDITION_H 2 #define CONDITION_H 3 4 #include 5 #include "noncopyable.h" 6 7 class MutexLock; 8 9 10 class Condition : NonCopya...
分类:
系统相关 时间:
2014-10-06 22:00:00
阅读次数:
265
由于pthread系列的函数都是成功时返回0,我们需要一段判断处理错误的代码:#define TINY_CHECK(exp)\ if(!exp)\ { \ fprintf(stderr, "File : %s, Line : %d Exp : ...
分类:
系统相关 时间:
2014-10-06 21:11:10
阅读次数:
248
转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39828653
状态模式(State):允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式说白了就是一个对像有不同的状态,不同的状态对应不同的行为,它其实是对switch case这样的语句的拓展。
封装基类状态的行为,并将行为委托到当前状态。...
分类:
编程语言 时间:
2014-10-06 20:53:30
阅读次数:
297
C++11提供了thread,但是过于复杂,我们还是倾向于在项目中编写自己的Thread。 Posix Thread的使用这里不再赘述。 重点是这个函数: #include int pthread_create(pthread_t *thread, const pthread_attr_t *att...
分类:
系统相关 时间:
2014-10-06 20:00:30
阅读次数:
241
存储过程,是一个被命名的存储在服务器上的T-sql语句的集合,是封装重复性工作的一种方法。为什么要使用存储过程?所有的客户端都可以通过相同的存储过程来确保数据访问和修改的一致性。权限控制,可以单独分配存储过程的执行权限。存储过程实现了封装,便于模块化设计存储过程可以减少网络流量创建存储过程CREAT...
分类:
数据库 时间:
2014-10-06 19:06:20
阅读次数:
159
本篇我们将讨论线程Thread、互斥锁MutexLock、条件变量Condition的封装;说明:1、MutexLock、Condition利用构造函数和析构函数自动完成资源的申请和释放;2、MutexLock、Condition和Thread 都涉及到系统资源,这些类全部为不可复制的;例如,a程序...
分类:
系统相关 时间:
2014-10-06 18:49:20
阅读次数:
278
本文对Linux中的pthread_mutex_t做一个简易的封装。 互斥锁主要用于互斥,互斥是一种竞争关系,主要是某一个系统资源或一段代码,一次做多被一个线程访问。 条件变量主要用于同步,用于协调线程之间的关系,是一种合作关系。 Linux中互斥锁的用法很简单,最常用的是以下的几个函数: int ...
分类:
系统相关 时间:
2014-10-06 18:47:20
阅读次数:
188
为避免与Servlet API耦合在一起,方便Action类做单元测试.Struts2对HttpServletRequest、HttpSession、ServletContext进行了封装,构造了三个Map对象来替代这三种对象。注意,这三个对象与Servlet API中的三个对象是相同的。即,在Ac...
分类:
移动开发 时间:
2014-10-06 18:18:40
阅读次数:
198
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------三大特性封装封装是把成员变量包装起来,不让外界直接访问。根据成员变量的作用域,默认都是protect类型的。set 和get方法有时候我们必须要访问成员变量,但是成员变量被封装起来了,这时候我们就可...
分类:
其他好文 时间:
2014-10-06 17:44:40
阅读次数:
145