关于线程的创建

本文介绍了一个简单的Windows环境下使用C语言创建线程的例子。通过`CreateThread`函数创建了一个新的线程,并演示了如何在线程中进行计数打印。此外还展示了如何等待线程结束及释放线程资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 #include <stdio.h>
 2 #include <windows.h>
 3 
 4 
 5 DWORD WINAPI ThreadProc_txl(LPVOID lpParam)
 6 {
 7     int i = 0 ;
 8     while (i < 20)
 9     {
10         printf("I am from a thread,count = %d\n",i++);
11     }
12     return 0;
13 }
14 
15 int main(int argc,char * argv[])
16 {
17     HANDLE hThread;
18     DWORD dwThreadld;
19     /*
20        SECURITY_ATTRIBUTES  sa;
21        sa.nLength = size(sa),
22        sa.lpSecurityDescriptor = NULL,
23        sa.blnheritHandle = TRUE, //设置线程可以被继承,时,此变量的值要设置为True,
24     */
25 
26     /************************************************************************/
27     /* 只有当线程运行结束时,线程才变为受信状态                                                                     */
28     /************************************************************************/
29 
30 
31     hThread = ::CreateThread(
32         NULL,  //默认NULL安全属性,是不可被继承的, 如果设置可以被继承,必须填入SECURITY_ATTRIBUTES结构类型的数据,可以为&sa
33         NULL,  //默认线程堆栈大小
34         ThreadProc_txl,//线程入口地址函数(执行线程的函数,也可以理解为线程工作函数)
35         NULL,   //传递给线程工作函数的参数,
36         0, //0:指定线程创创建后立即运行,CREATE_SUSPENDED 表示线程创建以后被被挂起,可以调用ResumeThread函数恢复运行
37         &dwThreadld);//返回线程的ID号
38     printf("Now another thread has been created.ID = %D\N",dwThreadld);
39 
40     /************************************************************************/
41     /* WaitForSignleObject函数
42     1.在等待的hThread句柄所代表的线程变为受信状态
43     2.第二个参数(以毫秒为单位)所指定的等待时间已过,INFINITE表示无线等待时间*/
44     /************************************************************************/
45     ::WaitForSingleObject(hThread,INFINITE);//无线等待时间,直到线程执行结束
46     ::CloseHandle(hThread);
47     return 0;
48 }

 

转载于:https://www.cnblogs.com/tixilibk/p/8792917.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值