
多线程
Mr. HLW
这个作者很懒,什么都没留下…
展开
-
CreateThread和_beginthreadex区别
二、解释 (1)如果你正在编写C/C++代码,决不应该调用CreateThread。相反,应该使用VisualC++运行期库函数_beginthreadex,退出也应该使用_endthreadex。如果不使用Microsoft的VisualC++编译器,你的编译器供应商有它自己的CreateThread替代函数。不管这个替代函数是什么,你都必须使用。 (2)因为_beginth原创 2016-07-08 11:34:51 · 585 阅读 · 0 评论 -
多线程经典问题 -- 生产问题
//1生产者 1消费者 1缓冲区 //使用二个事件,一个表示缓冲区空,一个表示缓冲区满。 //再使用一个关键段来控制缓冲区的访问 #include #include #include //设置控制台输出颜色 BOOL SetConsoleColor(WORD wAttributes) { HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);原创 2016-07-08 11:30:26 · 393 阅读 · 0 评论 -
Sempahore
#include #include #include #define max 10 using namespace std; CRITICAL_SECTION cs; HANDLE hHandle; //Semaphore handle int semanum; unsigned int _stdcall ThreadFunc(LPVOID lpa) { int k = *(int *)lpa原创 2016-07-08 11:36:37 · 407 阅读 · 0 评论 -
线程锁
/* Mutex和critical的区别: Mutex较慢。 Mutex 是内核对象,相关函数的执行 (WaitForSingleObject, ReleaseMutex)需要用户模式(User Mode)到内核模 式(Kernel Mode)的转换,在x86处理器上这种转化一般要发费600个左右的 CPU指令周期。 critical较快。Critical Section本身不是内核对象,相关原创 2016-07-08 11:39:45 · 308 阅读 · 0 评论