Visual C++优化对大型数据集合的并发访问
http://tech.ddvip.com 2007年03月30日 社区交流
本文详细介绍Visual C++优化对大型数据集合的并发访问
Figure 4 Thread Class Definition
class Thread
{
public:
Thread();
virtual ~Thread();
virtual void start();
virtual bool wait(unsigned long timeout = INFINITE);
unsigned long getId() const
{ return m_id; }
HANDLE getHandle() const
{ return m_h; }
protected:
virtual void run() = 0;
private:
static unsigned __stdcall entryPoint(void* pArg);
unsigned long m_id;
HANDLE m_h;
};图 4
与前面的构造块类不同,要向您解释清楚 Thread 类有一点儿困难(参见图 4)。对于那些了解 Java 的读者而言,它非常像 Java Thread 类,不同之处在于它不支持单独的 Run 接口 — 它要求直接从 Thread 派生。
对于那些不熟悉 Java 的线程机制的读者而言,以下是您使用 Thread 类的方法。首先,从 Thread 派生一个类(假设为 MyThread),然后重写纯虚拟方法 run。在该方法中放入您希望新线程执行的代码。然后,构建一个 MyThread 类型的对象,并调用 start。此时,新的线程将开始在您的 run 方法中执行。如果您希望另一个线程等待至 MyThread 线程退出,请调用 wait。(当然,您绝不能从 run 方法内部调用 wait 方法。)
以这种方式对线程进行建模的优点之一是:它使得与线程的通讯变得容易多了。要将信息传递给线程,您需要做的全部事情就是将这些信息存储在您的 MyThread 类的数据成员中。我通常在构造函数中完成这一工作。要向您的线程外部传递信息,只须完成相反的工作 — 在您的 run 方法中,将信息存储在您的 MyThread 类的数据成员中,然后实现 getter 方法以使其他线程可以获取该数据。
作者:Ian Emmons 责编:豆豆技术应用
正在加载评论...
- VC/VC++按钮设计专题
- VC/VC++ 菜单专题
- VC/VC++ 工具条专题
- VC/VC++ 对话框教程
- VC/VC++ 报表教程
- VC/VC++ 控件
- VC/VC++ GDI
- Visual Studio 2008
- VC/VC++ MFC教程
- VC/VC++ QQ
- VC/VC++ Socket编程
- VC/VC++ 钩子编程
- TangramMini组件应用教程
- VC/VC++ 窗体
- VC/VC++ ADO 教程
- Windows CE 教程
- VC/VC++ DLL(动态链接库)编程
- VC/VC++ PDFlib
- VC与MATLAB编程
- VC/VC++ DirectShow 教程
- VC++入门视频教程
- VC/VC++ COM组件设计与应用
- VC/VC++ ATL
- VC/VC++ WTL
- VC/VC++ 定制调试诊断工具和程序
- VC/VC++ 进程
- VC/VC++ Win32
- VC/VC++ WMI
- VC/VC++ 消息
- 更多VC/VC++专题……