#include<stdio.h>#include<stdlib.h>#include<deque>#include<string>#include<string.h>#include<pthread.h>#include<signal.h>#include<assert.h>#include"clock.h"std::deque<std::string>task_queue;pthread_mutex..
分类:
编程语言 时间:
2014-08-04 14:43:17
阅读次数:
279
.h文件
/**********************说明*************************
* 这是MPool内存池的实现,他具有如下特性:
* 1. 池中的内存块是大小是相同的
* 2. 由宏定义_MP_NO_SERIALIZE决定是否需要多线程同步
* 3. 他利用windows的堆内存API进行内存分配
* 4. 他不能替换crt的malloc和free
* 5. 他不...
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-07-27 09:50:32
阅读次数:
405
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-07-24 22:03:42
阅读次数:
237
package多线程;
publicclassThreadcommunicateSafe1{
publicstaticvoidmain(String[]args){
Info3mess=newInfo3();
Input3in=newInput3(mess);
Output3out=newOutput3(mess);
newThread(in).start();
newThread(out).start();
}
}
//1,等待唤醒机制实现Input线..
分类:
编程语言 时间:
2014-07-21 12:21:24
阅读次数:
228
临界区Critical Section(CS) 不可跨进程,效率高事件 Event 使用内核对象,可跨进程,用于通知互斥量 Mutex 使用内核对象,可跨进程,用户互斥信号量 Semaphore 使用内核对象,可跨进程,有限数量资源http://blog.csdn.net/column/deta.....
分类:
编程语言 时间:
2014-07-21 09:37:54
阅读次数:
294
阅读本篇之前推荐阅读以下姊妹篇:《秒杀多线程第四篇一个经典的多线程同步问题》《秒杀多线程第五篇经典线程同步关键段CS》《秒杀多线程第六篇经典线程同步事件Event》《秒杀多线程第七篇经典线程同步相互排斥量Mutex》前面介绍了关键段CS、事件Event、相互排斥量Mutex在经典线程同步问题中的使用...
分类:
编程语言 时间:
2014-07-15 08:39:59
阅读次数:
276
这里我有一个简单的思路,来源于去年应届生找工作做大量的名企笔试题里他人的技巧。
多线程的测试使用cout是不靠谱的,因为多个线程使用cout很容易产生混乱的输出,而且耗时。
多线程的测试往往需要知道多个线程同时运行的时候对某个共享区域的使用是否正确,为了检验正确性,比较好的测试用例就是:递增的整数序列
递增的整数序列中的每一个整数都对应一个线程的动作,最后我们将这些整数再当成...
分类:
编程语言 时间:
2014-07-14 18:14:34
阅读次数:
325
用在多线程,同步变量。 线程为了提高效率,将某成员变量(如A)拷贝了一份(如B),线程中对A的访问其实访问的是B。只在某些动作时才进行A和B的同步。因此存在A和B不一致的情况。volatile就是用来避免这种情况的。volatile告诉jvm, 它所修饰的变量不保留拷贝,直接访问主内存中的(也就是上...
分类:
编程语言 时间:
2014-07-09 19:38:00
阅读次数:
218
上一篇《秒杀多线程第三篇原子操作 Interlocked系列函数》中介绍了原子操作在多进程中的作用,如今来个复杂点的。这个问题涉及到线程的同步和相互排斥,是一道很有代表性的多线程同步问题,假设能将这个问题搞清楚,那么对多线程同步也就打下了良好的基础。程序描写叙述:主线程启动10个子线程并将表示子线程...
分类:
编程语言 时间:
2014-07-03 20:59:25
阅读次数:
298