码迷,mamicode.com
首页 >  
搜索关键字:linux组    ( 108个结果
Linux组件封装(七)——线程池的简单封装
线程池的封装,基础思想与生产者消费者的封装一样,只不过我们是将线程池封装为自动获取任务、执行任务,让用户调用相应的接口来添加任务。在线程池的封装中,我们同样需要用到的是MutexLock、Condition、Thread这些基本的封装。基础封装如下:MutexLock: 1 #ifndef MUTE...
分类:编程语言   时间:2014-10-14 14:17:39    阅读次数:328
Linux组件封装(六)——定时器的简单封装
在Linux中,有一种简单的定时器——timerfd,它通过查看fd是否可读来判断定时器时候到时。timerfd中常用的函数有timerfd_create、timerfd_settime、timerfd_gettime,这些函数都相对简单,我们可以到man手册来查看用法。值得注意的是:create中...
分类:系统相关   时间:2014-10-14 00:45:28    阅读次数:375
Linux组件封装之五:生产者消费者问题
生产者,消费者问题是有关互斥锁(MutexLock)、条件变量(Condition)、线程(Thread)的经典案例;描述的问题可以叙述为 生产者往buffer中投放产品,而消费者则从buffer中消费产品。生产着消费者问题的难点在于:为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区投放或者消费...
分类:系统相关   时间:2014-10-08 02:39:14    阅读次数:304
Linux组件封装(五)一个生产者消费者问题示例
生产者消费者问题是计算机中一类重要的模型,主要描述的是:生产者往缓冲区中放入产品、消费者取走产品。生产者和消费者指的可以是线程也可以是进程。 生产者消费者问题的难点在于: 为了缓冲区数据的安全性,一次只允许一个线程进入缓冲区,它就是所谓的临界资源。 生产者往缓冲区放物品时,如果缓冲区已满,那么需要等...
分类:系统相关   时间:2014-10-07 22:12:34    阅读次数:305
Linux组件封装(四)使用RAII技术实现MutexLock自动化解锁
我们不止一次写过这种代码: { mutex_.lock(); //XXX if(....) return; //XXX mutex_.unlock(); } 显然,这段代码中我们忘记了解锁。那么如何防止这种情况,我们采用和智能指针相同的策略,把加锁和解锁的过程封装在一个对象中。 实现“对象生命期”等...
分类:系统相关   时间:2014-10-07 21:53:24    阅读次数:215
Linux组件封装(四) Buffer的封装
这里,我们需要将缓冲区封装起来,然后让缓冲区与线程想连接,所以我们需要一个相应的接口。在Buffer中,我们需要想对应的一把锁与两个条件变量。当满足队列为空时,消费者等待,反之,生产者等待。Buffer的声明如下: 1 #ifndef BUFFER_H 2 #define BUFFER_H 3 4....
分类:系统相关   时间:2014-10-07 19:02:13    阅读次数:278
Linux组件封装(五) WorkShop的封装
我们封装好了Buffer后,却不知道具体要多少个线程,一个一个线程的去关联Buffer太繁琐了。那么,我们是不是可以讲Buffer与线程的一个队列封装在一起呢 ?由于vector中不能存放Thread,所以,我们应在vector中添加相应的Thread *,这样,就可以完成封装了。声明代码如下: 1...
分类:系统相关   时间:2014-10-07 17:47:43    阅读次数:274
Linux组件封装之二:Condition
本博文讨论Linux中的条件变量Condition的封装;条件变量Condition 主要描述的是 线程间 的同步,即协作关系。Linux中的条件变量通常涉及以下几个函数:int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *...
分类:系统相关   时间:2014-10-06 23:40:40    阅读次数:377
Linux组件封装之三:Thread
本篇我们将讨论线程Thread的封装;一、线程类(Thread):注意:1、线程在默认情况下 是 joinable(可结合状态),需要手工调用 join函数(将其回收),也可以将其设置为detachable(分离状态),线程运行完毕后自动消亡;2、Thread类采用static函数作为 pthrea...
分类:系统相关   时间:2014-10-06 23:25:50    阅读次数:288
Linux组件封装(三) Thread的封装
声明代码如下: 1 #ifndef THREAD_H 2 #define THREAD_H 3 4 #include "NonCopyable.h" 5 #include 6 #include 7 8 class Thread : NonCopyable 9 {10 public:11 ...
分类:系统相关   时间:2014-10-06 23:06:30    阅读次数:225
108条   上一页 1 ... 8 9 10 11 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!