多线程编程
必成桂
资深码农一枚
展开
-
多线程同步-event
在所有的内核对象中,事件内核对象是个最基本的。它包含一个使用计数(与所有内核对象一样),一个BOOL值(用于指明该事件是个自动重置的事件还是一个人工重置的事件),还有一个BOOL值(用于指明该事件处于已通知状态还是未通知状态)。事件能够通知一个线程的操作已经完成。有两种类型的事件对象。一种是人工重置事件,另一种是自动重置事件。他们不同的地方在于:当人工重置的事件得到通知时,等待该事件的所翻译 2009-09-14 13:52:00 · 5442 阅读 · 6 评论 -
WaitForSingleObject函数用法
等待函数可使线程自愿进入等待状态,直到一个特定的内核对象变为已通知状态为止。这些等待函数中最常用的是WaitForSingleObject: DWORD WaitForSingleObject(HANDLE hObject, DWORD dwMilliseconds);当线程调用该函数时,第一个参数hObject标识一个能够支持被通知/未通知的内核对象。第二个参数dwMilli翻译 2009-09-14 15:01:00 · 5259 阅读 · 2 评论 -
多线程基础
当前流行的Windows操作系统能同时运行几个程序(独立运行的程序又称之为进程),对于同一个程序,它又可以分成若干个独立的执行流,我们称之为线程,线程提供了多任务处理的能力。用进程和线程的观点来研究软件是当今普遍采用的方法,进程和线程的概念的出现,对提高软件的并行性有着重要的意义。现在的大型应用软件无一不是多线程多任务处理,单线程的软件是不可想象的。因此掌握多线程多任务设计方法对每个程序员都是转载 2009-09-23 12:07:00 · 1053 阅读 · 1 评论 -
多线程编程中注意的问题
最近项目的多线程部分出了很多问题,导致程序出现了几个重大bug。主要问题如下:1. 两个线程的执行顺序,和代码的顺序不一定是完全一致的。一定要做好同步。2. 线程terminate的时候,如何获得了锁,要记得释放。否则会出问题。3.锁的使用一定要小心,避免出现死锁,或者某个线程长期占用锁。原创 2012-10-18 10:13:45 · 2948 阅读 · 0 评论