windows系统调用 线程创建


 1 #include "windows.h"
2 #include "iostream"
3 using namespace std;
4
5 class CWorkerThread{
6 public:
7 CWorkerThread(LPCTSTR szName):
8 m_szName(szName),m_hThread(INVALID_HANDLE_VALUE){
9 m_hThread=CreateThread(
10 NULL,
11 0,
12 ThreadProc,
13 reinterpret_cast<LPVOID>(this),
14 0,
15 NULL
16 );
17 }
18
19 virtual ~CWorkerThread(){
20 CloseHandle(m_hThread);
21 }
22
23 virtual void WaitForCompletion(){
24 WaitForSingleObject(m_hThread,INFINITE);
25 }
26
27 protected:
28 static DWORD WINAPI ThreadProc(LPVOID lpParam){
29 CWorkerThread *pThis=reinterpret_cast<CWorkerThread *>( lpParam);
30 pThis->DoStuff();
31 return 0;
32 }
33
34
35 virtual void DoStuff(){
36 for(int n=0;n<10;++n){
37 printf("Thread %s ID:%d,count %d\n",m_szName,GetCurrentThreadId(),n);
38 }
39 }
40
41 protected:
42 HANDLE m_hThread;
43 LPCTSTR m_szName;
44 };
45
46 void main(){
47 CWorkerThread wtA("A");
48 CWorkerThread wtB("B");
49
50 wtA.WaitForCompletion();
51 wtB.WaitForCompletion();
52
53 printf("Both threads complete.\n");
54 getchar();
55 }

windows系统调用 线程创建

时间: 2024-08-03 17:30:59

windows系统调用 线程创建的相关文章

windows下线程创建

windows下线程创建: CreateThread()函数是Windows提供的API接口 1.HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTESlpThreadAttributes, SIZE_TdwStackSize, LPTHREAD_START_ROUTINElpStartAddress, LPVOIDlpParameter, DWORDdwCreationFlags, LPDWORDlpThreadId ); 函数说明: 第一个参数表示

windows系统调用 线程 启动与挂起

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 #include "iostream" #include "wind

[笔记]linux下和windows下的 创建线程函数

linux下和windows下的 创建线程函数 1 #ifdef __GNUC__ 2 //Linux 3 #include <pthread.h> 4 #define CreateThreadEx(tid,threadFun,args) pthread_create(tid, 0, threadFun, args) 5 #define CloseHandle(ph) 6 7 int pthread_create( 8 //指向线程标识符的指针. 9 pthread_t *restrict t

015 线程创建

线程  ● 进程启动 ○ 进程内核对象 进程空间 ○ 线程 ● 可以通过IDE设置入口函数 ● 自己创建线程 ○ 创建线程函数 CreateThread() ○ 新建线程内核对象(结构体) ● 线程 ○ 分配一块内存空间,作为当前线程的堆栈 ○ 两条在同一进程内线程,都是隔离的 ○ 线程他们是封闭的,每个线程都有自己的一个堆栈 ○ 但是都是属于当前进程内的堆栈 ○ 进程赋予了线程交互的能力 ● 线程创建 1 HANDLE WINAPI CreateThread( 2 _In_opt_ LPSEC

win32多线程 (一) 线程创建与结束等待

#include "stdafx.h"#include <Windows.h>#include <iostream> using namespace std; DWORD WINAPI ThreadFuncFirst(LPVOID param){ int iCount = 50; while(iCount--){  cout<<"\nThreadFuncFirst:"<<iCount; } return 0;} DWO

理解Android线程创建流程(转)

/android/libcore/libart/src/main/java/java/lang/Thread.java /art/runtime/native/java_lang_Thread.cc /art/runtime/native/java_lang_Object.cc /art/runtime/thread.cc /system/core/libutils/Threads.cpp /system/core/include/utils/AndroidThreads.h /framewor

pthread_create线程创建的过程剖析(转)

概述 在Linux环境下,pthread库提供的pthread_create()API函数,用于创建一个线程.线程创建失败时,它可能会返回ENOMEM或EAGAIN.这篇文章主要讨论线程创建过程中碰到的一些问题和解决方法. 创建线程 首先,本文用的实例代码example.c: /* example.c*/ #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <pthread.h&g

pthread_create线程创建的过程剖析

http://blog.csdn.net/wangyin159/article/details/47082125 在Linux环境下,pthread库提供的pthread_create()API函数,用于创建一个线程.线程创建失败时,它可能会返回ENOMEM或EAGAIN.这篇文章主要讨论线程创建过程中碰到的一些问题和解决方法. 创建线程 首先,本文用的实例代码example.c: /* example.c*/#include <stdio.h>#include <stdlib.h>

linux线程创建、取消、属性设置

创建线程: #include <pthread.h> int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg) 参数:第一个参数为指向线程标识符的指针. 第二个参数用来设置线程属性. 第三个参数是线程运行函数的起始地址. 第四个参数是线程运行函数的参数. int pthread_join(pthread_t thread, void