C++:多线程编程

最近在学习多线程编程,以下是一些关于多线程编程函数的一些总结。

在C++11被提出来之前,pthread 线程函数并未在c++提供,并且C++语言本身并没有提供太多的关于多线程编程的

机制,但是在未使用pthread 之前的一段时间中,Windows 为我们提供了相关的API 函数,来创建线程。

1.Handle 函数实现多线程编程的实例

/* 首先是关于一些关键字的理解*/
/*在C++11之前,C++中 并没有指定pthread函数,使用的是window.h中的HANDLE 来创建的多线程*/
#include<iostream>
#include<Windows.h>
using namespace std;

//DWORD表示的是无符号的整型,
//WINAPI 的使用是操作系统中可用内核应用程序编程接口的乘法,它的设计师有C++/C 程序的调用,
//是应用软件与Windows系统最直接的交互方式
//typedef void far            *LPVOID;
//far表示的是远指针,通常是在16位系统中使用的标注针指针是个远指针的修饰符
//但是在32位的操作系统中已经废弃了。远指针所指的是所指的地址超过了64K,所以需要使用DS
//加偏移量的方法来寻址,而不能直接寻址。其反义是near
//CreateThread()
//CloseHandle() close 关闭包括文件、文件映射、进程、线程、安全和同步对象
//在CreateThread 成功之后会返回一个hThread的handle,且内核对象计数加一,
//引用计数减一,当变为0时,系统删除内核对象。
//若在线程执行完成之后,没有调用closeHandle,在晋城执行期间,将会造成内核对象的泄露,相当于句柄//的泄露,但不同于内存泄露,这势必会对系统的效率
//带来一定的负面的影响,当进程结束退出之后,系统会自动的清理这些资源
DWORD WINAPI FUN(LPVOID lpParamter){
for (int i = 0; i < 10; i++){
cout << "A Thread Fun Display" << endl;
}

return 0L;//表示的是返回的是一个长整型的0
}

int main(){

HANDLE hpThread = CreateThread(NULL, 0, FUN, NULL, 0, NULL);

CloseHandle(hpThread);

for (int i = 0; i < 10; i++){
cout << "Main Thread Display" << endl;
}

return 0;
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值