简单的多线程

#pragma  once

#include 
< windows.h >
#include 
< stdio.h >
#include 
< stdlib.h >

DWORD WINAPI WorkThread(LPVOID pVoid);


// 主綫程
int  main( void ) {
    
int * num;//傳遞給新綫程的參數 
    DWORD dwThreadId;//綫程ID
    HANDLE hThread ;
    
int i;

    printf(
"程式開始... ");
    
    
    num 
= (int *)malloc(sizeof(int));
    num 
= 100;
    

    
    hThread 
= CreateThread(NULL, 0, WorkThread, &num, 0&dwThreadId);//創建綫程

    
if(hThread == FALSE){
            printf(
"綫程創建失敗! 程式退出... ");
            
return EXIT_FAILURE;
        }

    
    
for(i = 0; i <= 20; i++){
            printf(
"%d",i);
            Sleep(
500);
        }


        CloseHandle(hThread);

    printf(
" ");
    printf(
"程式結束.");
    
return EXIT_SUCCESS;
}


// WorkThread綫程代碼
DWORD WINAPI WorkThread(LPVOID pVoid) {
    
int j;
    
for(j = 0; j <= 10; j++){
        printf(
"%d", j);
        Sleep(
500);
    }

    
    printf(
"==%d== "*(int *)pVoid);
    
    
return EXIT_SUCCESS;
}
 线程建立函数:
HANDLE CreateThread(
 LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全属性结构指针,可为NULL;
 DWORD dwStackSize, // 线程栈大小,若为0表示使用默认值;
 LPTHREAD_START_ROUTINE lpStartAddress, // 指向线程函数的指针;
 LPVOID lpParameter, // 传递给线程函数的参数,可以保存一个指针值;
 DWORD dwCreationFlags, // 线程建立是的初始标记,运行或挂起;
 LPDWORD lpThreadId // 指向接收线程号的DWORD变量;
);

你可能感兴趣的:(C语言,多线程,attributes,null)