一、为什么要写这篇博客
一直对C++多线程一知半解,感觉没有实际进入过C++多线程的世界,因此想从头开始慢慢真正进入C++多线程,真正了解多线程。因为我也想了解Linux下的C++ 编程,因此我也会在Linux平台下进行编写代码并验证。文章里面会借鉴一些网上优秀的代码和讲解,但买一行代码我都会自己敲一遍,学习和借鉴是一起的,但代码必须是自己一行一行写的才行。这里的开头也是希望自己能记住自己的初衷!
二、核心代码(Win32平台)
相关头文件
#include <windows.h>
相关函数介绍
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
);
参数:
lpThreadAttributes [in, optional]
A pointer to a SECURITY_ATTRIBUTES structure that determines whether the returned handle can be inherited by child processes. If lpThreadAttributes is NULL, the handle cannot be inherited.(该参数是一个指向 SECURITY_ATTRIBUTES 的指针,这个指针决定创建的该线程句柄是否被子进程继承,如果该参数为NULL,则表示该句柄不能被继承)。
dwStackSize [in]
The initial size of the stack, in bytes. The system rounds this value to the nearest page. If this parameter is zero, the new thread uses the default size for the executable(初始化栈的大小&