Sakura晞月

导航

操作系统中的线程操作

        HANDLE(句柄)是Windows操作系统中的一个概念。在Windows程序中,有各种各样的资源(窗口、图标、光标等),系统在创建这些资源时会为它们分配内存,并返回标示这些资源的标示号,即句柄。句柄指的是一个核心对象在某一个进程中的唯一索引,而不是指针。由于地址空间的限制,句柄所标识的内容对进程是不可见的,只能由操作系统通过进程句柄列表来进行维护。句柄列表:每个进程都要创建一个句柄列表,这些句柄指向各种系统资源,比如信号量线程,和文件等,进程中的所有线程都可以访问这些资源。

先把老师的势利代码附上

 

#define WIN32_LEAN_AND_MEAN
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <iostream>
using namespace std;
DWORD WINAPI ThreadFunc(LPVOID);

int main()
{
    HANDLE hThrd;//handle是句柄的意思 
    DWORD threadId;
    int i;
    
    for (i=0; i<5; i++)
    {
        hThrd = CreateThread(NULL,//线程获得默认的安全性描述符 
            0,//默认值为0 
            ThreadFunc,//指定线程开始运行的地址。 一旦该函数退出,那么线程将终止。 
            (LPVOID)i,//表示传递给线程的32位的参数。 
            0,//该线程在创建后立即执行 
            &threadId );//指向一个32位值,用来存放返回的线程ID 
        if (hThrd)
        {
            printf("Thread launched %d\n", i);
            CloseHandle(hThrd);
        }
    }
    // Wait for the threads to complete.
     Sleep(2000);

    return EXIT_SUCCESS;
}

DWORD WINAPI ThreadFunc(LPVOID n)
{
    int i;
    for (i=0;i<10;i++)
        printf("%d%d%d%d%d%d%d%d\n",n,n,n,n,n,n,n,n);
    return 0;
}

 

posted on 2018-11-15 19:49  Sakura晞月  阅读(402)  评论(0)    收藏  举报