Windows多线程之线程创建

一. 线程创建函数 CreateThread

1. 函数原型
    HANDLE WINAPI CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
2, 参数说明
  • 第一个参数 lpThreadAttributes 表示线程内核对象的安全属性,一般传入 NULL 表示使用默认设置。

  • 第二个参数 dwStackSize 表示线程栈空间的大小。传如 0 表示使用默认大小(1MB)。

  • 第三个参数 lpStartAddress 表示新线程所执行的线程函数地址,多个线程可以使用同一个函数地址。

  • 第四个参数 lpParameter 是传给线程函数的参数。

  • 第五个参数 dwCreationFlags 指定额外的标志来控制线程的创建,为 0 表示线程创建之后立刻就进行调度,如果为 CREAATE_SUSPENDED 则表示线程创建后暂停运行,这样它就无法调度,直到调用 ResumeThread()。

  • 第六个参数 lpThreadId 将返回线程的 ID 号,传入 NULL 表示不需要返回该线程的 ID 号。

3. 返回值

​ 线程创建成功返回新线程句柄,失败返回 NULL。

4. 示例代码
#include <windows.h>
#include <stdio.h> DWORD WINAPI ThreadFunc(LPVOID); int main()
{
HANDLE hThread;
DWORD threadID;
printf("Enter the main thread ...\n");
hThread = CreateThread(NULL, 0, ThreadFunc, 0, 0, NULL);
for (int i = 0; i < 2; i++)
{
printf("I am the main thread,PID = %d\n", GetCurrentThreadId());
Sleep(1000);
}
printf("Quit the main thread ...\n");
return 0;
} DWORD WINAPI ThreadFunc(LPVOID)
{
printf("Enter the child thread ...\n");
for (int i = 0; i < 2; i++)
{
printf("I am child thread,PID = %d\n", GetCurrentThreadId());
Sleep(500);
}
printf("Quit the child thread ...\n");
return 0;
}

执行结果如下:

aaarticlea/png;base64,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" alt="01CreateThread">

二. 线程创建函数 _beginthreadex()

1. 概述

​ CreateThread() 函数是 Windows 提供的 API 接口,在 C/C++ 语言中有另一个创建线程的函数 _beginthreadex(),我们应该尽量使用 _beginthreadex() 来代替使用 CreateThread(),因为它比 CreateThread 更安全。

​ 其原因首先要从标准 C 运行库与多线程的矛盾说起,标准 C 运行库在 1970 年被实现了,由于当时没有任何一个操作系统提供对多线程的支持。因此编写标准 C 运行库的程序员根本没考虑多线程程序使用标准 C 运行库的情况。比如标准 C 运行库的全局变量 errno。很多运行库中的函数在出错时会将错误代号复制给这个全局变量,这样可以方便调试。但如果有这样的一个代码片段:

if (system("notepad.exe readme.txt") == -1)
{
switch(errno)
{
...//错误处理代码
}
}

​ 假设某个线程 A 在执行上面的代码,该线程在调用 system() 之后尚未调用 switch() 语句时另一个线程 B 启动了,这个线程 B 也调用了标准 C 运行库的函数,不幸的是这个函数执行出错了并将错误代号写入全局变量 errno 中。这样线程 A 一旦开始执行 switch() 语句时,它将访问一个被 B 线程改动了的 errno。这种情况必须要加以避免!因为不单单是这一个变量会出问题,其他像 strerror()、strtok()、tmpname()、gmtime()、asctime()等函数也会遇到这种有多个线程访问修改导致的数据覆盖问题。

​ 为了解决这个问题,Windows 操作系统提供了这样一种解决方案 —— 每个线程都将拥有自己专用的一块内存区域来提供标准 C 运行库中所有有需要的函数使用。而且这块内存区域的创建就是由 C/C++ 运行库函数 _beginthreadex() 来负责的。 _beginthreadex() 函数在创建新线程时会分配并初始化一个 _tiddata 块。这个 _tiddata 块自然是用来存放一些需要线程独享的数据。新线程运行时会首先将 _tiddata 块与自己进一步关联起来。然后新线程调用标准 C 运行库函数如 strtok() 时就会先取得 _tiddata 块的地址再讲需要保护的数据存入 _tiddata 块中。这样每个线程就只会访问和修改自己的数据而不会去篡改其他线程的数据了。因此,如果在代码中有使用标准 C 运行库中的函数时,尽量时用 _beginthreadex() 来代替 CreateThread()。

2. 函数原型
unsigned long _beginthreadex(void* security,
unsigned stack_size,
unsigned(_stdcall *start_address)(void*),
void* arglist,
unsigned initflag,
unsigned* thrdaddr
);
3. 参数说明
  • 第一个参数 security 表示安全属性,NULL 为默认安全属性。

  • 第二个参数 stack_size 指定线程堆栈的大小。如果为 0 ,则线程堆栈大小和创建它的线程的相同。一般用 0 。

  • 第三个参数 start_address 指定线程函数的地址,也就是线程调用执行的函数地址(用函数名称即可,函数名称就表示地址)。

  • 第四个参数 arglist 表示传递给线程的参数的指针,可以通过传入对象的指针,在线程函数中再转化为对应类的指针。

  • 第五个参数 initflag 表示线程初始化状态,0 表示立即运行;CREATE_SUSPEND 表示悬挂。

  • 第六个参数 thrdaddr 用于记录线程 ID 的地址。

4. 返回值

​ 线程创建成功返回新线程句柄,失败返回 NULL。

5. 示例代码
#include <Windows.h>
#include <process.h>
#include <stdio.h> unsigned int _stdcall ThreadFunc(PVOID pParam)
{
printf("the child thread %d: Hello world!\n", GetCurrentThreadId());
return 0;
} int main()
{
const int THREAD_MUN = 5;
HANDLE handles[THREAD_MUN];
for (int i = 0; i < THREAD_MUN; i++)
{
handles[i] = (HANDLE)_beginthreadex(NULL, 0, ThreadFunc, NULL, 0, NULL);
}
WaitForMultipleObjects(THREAD_MUN, handles, TRUE, INFINITE);
return 0;
}

执行结果如下:

aaarticlea/png;base64,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" alt="image">

01创建线程CreateThread和_beginthreadex的更多相关文章

  1. windows多线程(一) 创建线程 CreateThread

    一 线程创建函数 CreateThread 修改说明: 这里 说了另一种创建线程方法,使用_beginthreadex()更安全的创建线程,在实际使用中尽量使用_beginthreadex()来创建线 ...

  2. windows多线程(十一) 更安全的创建线程方式_beginthreadex()

    一.原因分析 CreateThread()函数是Windows提供的API接口,在C/C++语言另有一个创建线程的函数_beginthreadex(),我们应该尽量使用_beginthreadex() ...

  3. 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  4. (转)CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  5. 秒杀多线程第二篇 多线程第一次亲热接触 CreateThread与_beginthreadex本质差别

    本文将带领你与多线程作第一次亲热接触,并深入分析CreateThread与_beginthreadex的本质差别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  6. createThread和_beginthreadex区别

    摘自:http://blog.csdn.net/morewindows/article/details/7421759 CreateThread()函数是Windows提供的API接口,在C/C++语 ...

  7. 多线程面试题系列(2): CreateThread与_beginthreadex本质区别

    本文将带领你与多线程作第一次亲密接触,并深入分析CreateThread与_beginthreadex的本质区别,相信阅读本文后你能轻松的使用多线程并能流畅准确的回答CreateThread与_beg ...

  8. CreateThread与_beginthreadex本质区别

    函数功能:创建线程 函数原型: HANDLEWINAPICreateThread( LPSECURITY_ATTRIBUTESlpThreadAttributes, SIZE_TdwStackSize ...

  9. 【转载】CreateThread与_beginthreadex本质区别

    转载文章,原文地址:http://blog.csdn.net/morewindows/article/details/7421759 本文将带领你与多线程作第一次亲密接触,并深入分析CreateThr ...

随机推荐

  1. CodeForces - 507B - Amr and Pins(计算几何)

    Amr loves Geometry. One day he came up with a very interesting problem. Amr has a circle of radius r ...

  2. UVa1471

    保留有价值的数字的做法,实际上这道题因为n只有1e5,所以不需要这种优化. #include<bits/stdc++.h> #define inf 0x3f3f3f3f ; using n ...

  3. Hive进阶_开发Hive的自定义函数

    Hive中的自定义函数简介 (1) 在类中创建自定义函数.自定义UDF需要继承'org.apache.hadoop.hive.ql.exec.UDF',实现evaluate函数,evaluate函数支 ...

  4. NET Core 模块化,多租户框架

    NET Core 模块化,多租户框架 Orchard Core Framework:ASP.NET Core 模块化,多租户框架 上一篇编写Orchard Core一分钟搭建ASP.NET Core ...

  5. 如何给数组用fill函数和memset函数给数组赋初值

    fill是按照单元来赋值的,所以可以填充一个区间的任意值 #include<iostream> #include<stdio.h> #include<string.h&g ...

  6. Tensorflow版Faster RCNN源码解析(TFFRCNN) (3)推断(测试)过程使用RPN时代码运行流程

    本blog为github上CharlesShang/TFFRCNN版源码解析系列代码笔记第三篇   推断(测试)过程不使用RPN时代码运行流程 作者:Jiang Wu  原文见:https://hom ...

  7. Spring 顾问

    1.名称匹配方法切入点顾问 接口:ISomeService public interface ISomeService { public void doSome(); public void doSe ...

  8. 第二十章 排查和调试Web程序 之 设计异常处理策略

    1. 概述 本章内容包括: 多层架构中的异常处理.使用global.asax 或 自定义的HttpHandler 或 web.config中的属性来显示特定的错误页.处理 first chance 异 ...

  9. 如何构建多模块的SpringBoot项目

    通过阅读本文你将了解到:如何将已有SpringBoot项目改成多模块 & 如何新构建多模块SpringBoot项目 以下示例基于我正在使用的order(订单服务)进行演示,无论你用的是什么项目 ...

  10. CSS3学习-用CSS制作立体导航栏

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...