windows 多线程编程 之 线程创建
来源:互联网 发布:pda软件下载 编辑:程序博客网 时间:2024/05/22 14:13
windows 中 多线程编程 之 线程创建
线程创建有两种方法:
第一种方法,调用函数 HANDLE WINAPI CreateThread(
_In_opt_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_opt_ __drv_aliasesMem LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_opt_ LPDWORD lpThreadId
);
参数解释:
lpThreadAttributes: 指向SECURITY_ATTRIBUTES型态的结构的指针。
dwStackSize:用于新线程的初始堆栈大小,默认值为0。在任何情况下,Windows根据需要动态延长堆栈的大小。
lpStartAddress:线程Process入口,线程函数必须定义为 DWORD WINAPI ThreadPro(PVOID pParam)
lpParameter: ThreadPro(PVOID pParam) 的参数
dwCreationFlags:默认0。
lpThreadId:线程id
#include <iostream> #include "windows.h"using namespace std;DWORD WINAPI TestThread1(PVOID pParam){while (1){printf("PID %d TestThread1 running;\n", GetCurrentThreadId());Sleep(1000);}return 0;}DWORD WINAPI TestThread2(PVOID pParam){while (1){printf("PID %d TestThread2 running;\n", GetCurrentThreadId());Sleep(1000);}return 0;}int main(){HANDLE m_hProcesss1 = CreateThread(NULL,/* pointer to SECURITY_ATTRIBUTES */ 0,/* StackSize */TestThread1, /* Thread Process */0,/* pointer to param */0,/* default zero */0);/* id */HANDLE m_hProcesss2 = CreateThread(NULL,/* pointer to SECURITY_ATTRIBUTES */0,/* StackSize */TestThread2, /* Thread Process */0,/* pointer to param */0,/* default zero */0);/* id */WaitForSingleObject(m_hProcesss1, INFINITE);WaitForSingleObject(m_hProcesss2, INFINITE);CloseHandle(m_hProcesss1);CloseHandle(m_hProcesss2);return 0;}</span></strong>
结果
hThread = _beginthread (ThreadProc, uiStackSize, pParam) ;
void __cdecl ThreadProc (void * pParam) ;
0 0
- windows 多线程编程 之 线程创建
- Windows多线程编程(1)创建线程
- c++ 多线程编程之创建新线程
- 多线程编程之创建工作者线程
- Windows核心编程之线程创建
- 多线程之线程创建
- 多线程程序设计之创建线程(Windows下C++实现)
- VC多线程编程之线程创建与示例
- VC多线程编程之线程创建与示例
- 【C/C++多线程编程之三】创建pthread线程
- 多线程编程(三)--创建线程之Thread VS Runnable
- 多线程编程(三)--创建线程之Thread VS Runnable
- iOS-多线程编程学习之pthread创建线程(二)
- VC多线程编程之线程创建与示例
- 多线程编程(三)--创建线程之Thread VS Runnable
- 多线程编程之三:Windows线程终止与取消
- Windows编程-线程的创建
- windows下创建线程编程
- JAVA基础学习(二十四)--Socket基础一UDP与TCP的基本使用
- JAVA中,instanceof的讲解
- poj 3294(后缀数组)
- Java基础(3):文件输入输出
- pat原理以及ospf 的相关知识
- windows 多线程编程 之 线程创建
- Java基础---IO(二)--Properties类、打印流、序列流、对象操作流、数据输入输出流
- Android中View的绘制流程详解
- Swift学习 结构体、枚举、类三者的对比
- 欢迎使用CSDN-markdown编辑器
- VS2010设置全局Include和Lib目录
- iframe与主框架跨域相互访问方法
- Web Animations
- 在spring中使用junit测试