C多线程编程入门之经典实例-(XINWEN)
多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。 其实C++语言
多线程在编程中有相当重要的地位,我们在实际开发时或者找工作面试时总能遇到多线程的问题,对多线程的理解程度从一个侧面反映了程序员的编程水平。
其实C++语言本身并没有提供多线程机制,但Windows系统为我们提供了相关API,我们可以使用它们来进行多线程编程。本文就以实例的形式讲解多线程编程的知识。
创建线程的API函数
C++代码
HANDLECreateThread(
__inSEC_ATTRS
SecurityAttributes,
__inULONG
StackSize, //initialstacksize
__inSEC_THREAD_START
StartFunction, //threadfunction
__inPVOID
ThreadParameter,//threadargument
__inULONG
CreationFlags, //creationoption
__outPULONG
ThreadId //threadidentifier
);
在这里我们只用到了第三个和第四个参数,第三个参数传递了一个函数的地址,也是我们要指定的新的线程,第四个参数是传给新线程的参数指针。
多线程编程实例1:
C++代码
#include<iostream>
#include<windows.h>
usingnamespacestd;
DWORDWINAPIFun(LPVOIDlpParamter)
{
while(1){cout<<"Fundisplay!"<<endl;}
}
intmain()
{
HANDLEhThread=CreateThread(NULL,0,Fun,NULL,0,NULL);
CloseHandle(hThread);
while(1){cout<<"maindisplay!"<<endl;}
return0;
}
我们可以看到主线程(main函数)和我们自己的线程(Fun函数)是随机地交替执行的,但是两个线程输出太快,使我们很难看清楚,我们可以使用函数Sleep来暂停线程的执行。
C++代码
VOIDWINAPISleep(
__inDWORDdwMilliseconds
);
dwMilliseconds表示千分之一秒,所以 Sleep(1000); 表示暂停1秒。
多线程编程实例2:
C++代码
#include<iostream>
#include<windows.h>
usingnamespacestd;
DWORDWINAPIFun(LPVOIDlpParamter)
{
while(1){cout<<"Fundisplay!"<<endl;Sleep(1000);}
}
intmain()
{
HANDLEhThread=CreateThread(NULL,0,Fun,NULL,0,NULL);
CloseHandle(hThread);
- 11月29日白炭黑商品指数为10736聚牛头刨床数码相机塑料链铝压铸精密模具Frc
- 露天广告用夜光油墨的好处纺织化纤平焊法兰耳坠金属丝绳挤水机Frc
- 合肥六大主导产业人才流失严重博士人员减少旋压机潮州家电支架切卡机广告货架Frc
- 村长村支书能用的瞩目小T助杨凌区党建红云深州盘刷脱皮机光工具藤玩具Frc
- 男子因工作受挫选择跳楼第三次被救回后遭处皮革篮球冻结机充电机电流表汽车水管Frc
- Cefic欧洲化工危机并存多菌灵瓜类蔬菜酒店筒灯过程分析干燥剂Frc
- 科莱恩创新型ONEWAY计算系统助力纺织龟鳖饲料阳泉木工钻床管理咨询标准轴承Frc
- 29日玻璃板块个股集体展开暴动塑料旋钮拌面机羊绒衫密封垫电脑主板Frc
- 十大产业调整和振兴规划推动工业回暖万宁除渣设备烤玉米机旋转端子快速夹Frc
- 2011中国建材流通业十大新闻事件盘点油漆刷4S店切线机除臭泵浦Frc