windows核心编程-创建线程CreateThread

本文介绍了Windows中线程的概念,包括线程作为内核对象的角色,编程视角下的线程结构,以及线程的执行体特性。讨论了不适用线程的情况,如算法依赖、逻辑顺序等,并详细解析了CreateThread API的使用,包括线程函数原型、参数说明以及线程调度的随机性和并发执行的处理。通过实例展示了线程并发控制的重要性。
摘要由CSDN通过智能技术生成

什么是线程

1、在Windows平台上,最终可以利用CPU执行代码的最小尸体就是线程

2、首先从内核角度看,线程是一个内核对象,系统用它来村塾一些关于线程统计信息(比如时间)

3、从编程角度来看,线程是一堆寄存器状态以及线程栈的一个结构体对象,本质上可以理解为一个函数调用其(

寄存器状态用与控制CPU执行,栈用于存储局部变量和函数调用参数及函数返回地址)

4、最后需要知道的就是线程还可以带有几个队列(简单的理解为异步函数调用队列):

消息队列(GUI线程系统内部会创建)

APC队列(调用APC函数时会创建)

(注意:这些队列在线程创建时比并不存在)

5、线程就是执行体


什么时候不使用线程

1、当一个算法是严格穿行化的时候,也就是计算的每一步都严重以来前一个操作步骤的结果的时候

2、当有多个功能任务也具有比较严格的先后逻辑关系的时候,不宜采用多线程

3、还有一个特殊情况,比如一个服务器需要处理成千上万个客户端链接,并处理不同的请求的时候,这种

情况下应当优先考虑线程池,而不是简单的多线程。


默认的线程函数必须具有如下原型

DWORD WINAPI ThreadProc(LPVOID LpParameter);

调用API:CreateThread可以创建一个新进程

HANDLE WINAPI CreateThread(
     LPSECURITY_ATTRIBUTES lpThreadAttributes,
     SIZE_T dwStackSize,
     LPTHREAD_START_ROUT
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值