
多线程
世纪殇
一个不断保持前进的程序员,目前潜心在数据分析和中等网站架构设计中
展开
-
生产者消费者多缓冲区实现
#include #include #include int gBuffer=0;//全局变量,缓冲区 HANDLE g_EventBufferEmpty,g_EventBufferFull; const int END_PRODUCE_NUMBER=10; //生产者线程 DWORD ProducerThread(PVOID pm) { for(int i=1;i<=END_PRODUCE_N原创 2015-01-13 19:19:20 · 4174 阅读 · 0 评论 -
多进程之读写并发问题
// Reader_Writer.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #include #include using namespace std; HANDLE gEventNoReader=0,gEventWriting=0; int gReaderCount=0; const int READER_NUM = 5;原创 2015-01-15 08:50:38 · 2203 阅读 · 0 评论 -
父亲 儿子 苹果 女儿 橘子问题
#include "stdafx.h" #include #include #include #include using namespace std; HANDLE Orange=0; HANDLE Apple=0; HANDLE Empty=0; int gCount=0; bool Mark=false; DWORD son(LPVOID lm) { while(gCount<12) {原创 2015-01-16 16:16:29 · 6388 阅读 · 0 评论 -
多线程之哲学家就餐问题
该问题的描述是:五个哲学家共用一张圆桌,分别坐在周围的5张椅子上,在圆桌上有5个碗和5只筷子,,他们的生活方式是交替进行思考和进餐,平时,一个哲学家进行思考和饥饿,平时,一个哲学家进行思考,饥饿的时候便试图取用其作用最靠近的筷子,只有在他拿到两至筷子时才能进餐,进餐完毕,放下筷子进行思考 现在呢:我们使用的源代码如下: // 哲学家.cpp : 定义控制台应用程序的入口点。 // #incl原创 2015-03-08 20:54:24 · 1488 阅读 · 0 评论 -
多线程练习题
题目描述: 子线程循环 10 次,接着主线程循环 100 次,接着又回到子线程循环 10 次,接着再回到主线程又循环 100 次,如此循环50次,试写出代码。 题目解析:首先不计较整体循环50次,只是需要进行一次整体循环,设计两个信号量,一个信号量hThreadSemp,用于计数子线程的输出过程,一个信号量hMainSemp用于计数主线程的输出过程, 首先子线程输出10次,也即在第十次输原创 2015-03-17 11:06:11 · 1010 阅读 · 0 评论 -
高并发模式之reactor原型代码
这里,我想根据reactor模式,其原则是per thread per loop,也即一个线程一个循环,由一个线程进行监听(只负责监听,一旦有connect来到,则将该收获的socket传递给真实工作的线程),其线程选择是在空闲线程列表中选择队列头部的一个空闲线程进行处理的!!!这样可以认为是先来先服务的规则进行处理的。原创 2015-09-16 20:31:30 · 1928 阅读 · 1 评论