阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步互斥量Mutex》《秒杀多线程第八篇经典线程同步信号量Semaphore》《秒杀多线程第九篇经典线程同步总...
分类:
编程语言 时间:
2014-11-20 11:47:13
阅读次数:
190
第一种:低效率实现 这种实现方法,优点是实现简单,缺点是在多线程频繁访问下效率比较低,经常出现锁竞争。适应于不需要频繁访问实例的情况下。 class Singleton
{
public: static Singleton* GetInstance() { AutoLock lock(mutex);...
分类:
其他好文 时间:
2014-11-19 21:57:09
阅读次数:
233
第一种:低效率实现 这种实现方法,优点是实现简单,缺点是在多线程频繁访问下效率比较低,经常出现锁竞争。适应于不需要频繁访问实例的情况下。 class Singleton
{
public: static Singleton* GetInstance() { AutoLock lock(mutex);...
分类:
其他好文 时间:
2014-11-19 21:48:46
阅读次数:
254
正在实现一个线程池的pthread包装器,突然发现有人在讨论关于http://blog.csdn.net/Solstice/article/details/5238671 是一篇比较老的文章,考虑了下 我在实现线程池包装器的时候会不会出现文章说的析构函数销毁mutex的问题最后得出一个结论 在线程池...
分类:
编程语言 时间:
2014-11-17 15:41:43
阅读次数:
130
用户进程,在用户态可以被直接 kill 。
用户进程陷入内核,在内核态进入死循环:
1. 循环体中有 msleep_interruptible ,进程状态为S,即可中断的睡眠状态,kill 命令不能杀死进程。
2. 循环体中有 msleep ,进程状态为D,即不可中断的睡眠状态,kill 命令不能杀死进程。
3. 循环体中无 sleep ,进程状态为R,即可执行状态,kill 命令不能杀死...
分类:
其他好文 时间:
2014-11-11 16:46:08
阅读次数:
220
多线程经常会在Linux的开发中用到,我想把平时的使用和思考记录下来,一是给自己做个备忘,二是分享给可能会用到的人。 POSIX标准下互斥锁是pthread_mutex_t,与之相关的函数有:1 int pthread_mutex_init(pthread_mutex_t * mutex , ...
分类:
编程语言 时间:
2014-11-08 23:19:56
阅读次数:
293
本文由该问题引入到内核锁的讨论,归纳例如以下为什么须要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是能够訪问全部内核数据的,因此要对共享数据进行保护,即相互排斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v...
分类:
其他好文 时间:
2014-11-08 18:10:46
阅读次数:
125
今天看了篇介绍condition_variable的文章。于是copy例子到IDE下运行看看,小改了个地方,就出现了让我百思不得姐的结果。 程序如下: #include // std::cout #include // std::thread #include // std::mutex, st...
分类:
其他好文 时间:
2014-11-08 00:58:21
阅读次数:
269
IntroductionA Hierarchical Data is a data that is organized in a tree-like structure and structure allows information to be stored in a parent-child r...
分类:
Web程序 时间:
2014-11-07 16:20:24
阅读次数:
225
java使用Synchronized关键字实现互斥,而同时有Lock支持。这两个的效果是等同的,Synchronized性能的起伏较大,而lock比较收敛。为了代码的可读性,Synchronized更建议使用。
分类:
编程语言 时间:
2014-11-05 17:09:41
阅读次数:
198