Windows编程——线程篇(一):线程简介

本文介绍了Windows编程中的线程概念,包括线程的启动、终止、调度以及线程优先级的设置。线程由内核对象和堆栈组成,通过createthread或beginthread创建。线程终止可由函数返回、exitthread、terminatethread触发。调度涉及线程的暂停、重启和睡眠。线程优先级分为0-31级,高优先级线程优先执行,应避免使用实时优先级以防止影响系统任务。

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

Windows编程——线程篇(一):线程简介

线程由2部分构成:线程的内核对象和线程堆栈。操作系统使用内核对象对线程进行管理,堆栈则用于维护线程在执行代码时需要的所有函数参数和局部变量。一个进程中的多个线程之间共享这个进程的代码段、地址空间、内核对象句柄等。

线程的启动

可以使用createthread、__beginthread函数来创建一个线程。但是一般建议使用beginthread,虽然它也是调用的createthread函数来创建线程的。但是beginthread会另外初始化C运行时库,保证C库的线程安全。比如errno一般是全局共享的,如果使用createthread则所有线程都共享这一个errno,但是如果使用beginthread则每个线程都有自己的errno不会互相影响。

HANDLE CreateThread(
    LPSECURITY_ATTRIBUTES lpThreadAttributes,
    SIZE_T dwStackSize,
    LPTHREAD_START_ROUTINE lpStartAddress,
    LPVOID lpParameter,
    DWORD dwCreationFlags,
    LPDWORD lpThreadId
    );
    
uintptr_t _beginthread(
    _beginthread_proc_type _StartAddress,
    unsigned               _StackSize,
    void*                  _ArgList
    );
uintptr_t _beginthreadex(
    void*                    _Security,
    unsigned                 _S
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值