C++多线程

本文介绍了如何使用Windows API进行线程管理,包括线程的创建、等待和终止等操作,并给出了具体的示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://www.javaeye.com/topic/375400

 

 Windows API是应用程序与OS底层的一个接口,所以我认为只要我们会利用该接口,也就是调用好合适的方法,然后好好添加上适当的参数,就OK了。该编程方式比OpenMP方式,形式要麻烦些,但是如果使用合理的话,效率自然要高些。

     线程管理

     线程的创建调用CreateThread()方法。其中,填空的话,主要涉及到有六个参数:

第一个参数,是关于在系统中使用方法进行高级设置,一般为NULL;

第二个参数,是设置线程堆栈大小的,一般为0;

第三个参数,很重要,函数指针,指向实际运行的代码;

第四个参数,参数指针,也就是第三个参数里的参数内容;

第五个参数,设置标志,一般为0;

第六个参数,线程ID,一般为NULL;

     总结一下,也就是注意第三个和第四个参数即可~

 

 

 

 

 

WaitForMultipleObjects线程的等待,等待4个线程都执行完毕

//以后,主函数方可推出,否则,主函数已经结束,而新创建的函数还在运行着,所以无法看到整个程序真正的
//运行结果,大家可以注释掉该行,看看结果~
线程的终止
1.正常终止,例如上述例子中的helloFunc()函数中最后正常的return;强烈推荐。
2.ExitThread()
3.CloseHandle()

2和3的形式都很危险~要杜绝!

线程的等待

 

DWORD WaitForSingleObject(HANDLE hHandle, DWORD dwMilliseconds);
或者
DWORD  WaitForMultipleObjects  (DWORD nCount,CONST HANDLE *lpHandles,    // array
  BOOL fWaitAll,                 // wait for one or all 
 DWORD dwMilliseconds); 
     第一个函数是等待一个线程,第二个函数是等待多个线程,至于线程,都是装在HANDLE或者其数组里。设置好相应的等待时间即可~
多线程编程之一——问题提出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值