在windows下一般由以下三种方式来进行线程操作:

1、通过CreateThread(),对应线程结束函数ExitThread();

2、通过_beginthread(),对应线程结束函_endthread();

3、在MFC程序中还可以通过AfxBeginThread();对应线程结束函数AfxEndThread(),它们是MFC层面进行的再次封装。

上述函数的区别为:

在_beginthread()函数中实际上也是调用CreateThread来创建线程,但是在调用CreateThread之前,先申请了一个叫做_tiddata的数据结构(该结构在mtdll.h中进行了定义),该结构中主要保存了线程ID、线程句柄、erron、strtok的前一次调用位置,rand()函数的种子、异常处理等与CRT(C RunTime)相关的信息,但是这些信息是线程私有的。

在_endthread()函数中对申请的_tiddata数据结构进行释放。

正是有这些区别,在线程使用过程中需注意:

1、配对使用线程创建与结束函数,即CreateThread()<=>ExitThread()、_beginthread()<=>_endThread()、AfxBeginThread()<=>_AfxEndThread()。

2、尽量使用_beginthread()/_beginthreadex()/_endThread()/_endthreadex()。

3、在MFC工程中尽量它所包包装的线程函数:AfxBeginThread()【AfxEndThread()】。

CreateThread、_beginthread与AfxBeginThread的区别及其注意事项相关推荐

  1. Mybatis映射文件SQL语句模糊查询,#和$的区别和注意事项

    Mybatis映射文件SQL语句模糊查询 1. "%"#{value}"%" 在参数中不需要添加 %_ 推荐使用 2. '%${value}%' 在参数中不需要 ...

  2. 英文破折号、连接号、连字符、负号的区别,注意事项和输入方法

    英文破折号.连接号.连字符.负号的区别,注意事项和输入方法 En dash MS Word中输入2013,在按Alt+X Em dash MS Word中输入2014,在按Alt+X

  3. 动态代理jdk和cglib区别、注意事项(private,static,final)、spring aop原理

    文章目录 一.代理简聊 二.静态代理 三.动态代理 1.jdk动态代理 2.cglib动态代理 四.动态代理总结.注意事项 1.jdk动态代理与cglib的区别. 2.注意事项及分析. 五.aop原理 ...

  4. CreateThread、_beginthreadex和AfxBeginThread 的区别

    CreateThread._beginthreadex和AfxBeginThread 创建线程好几个函数可以使用,可是它们有什么区别,适用于什么情况呢? 参考了一些资料,写得都挺好的,这里做一些摘抄和 ...

  5. 一文解决new/delete与malloc/free相关问题:区别?注意事项?使用方式?

    目录 一.内存分配模型 1.1 先看内存的分布状况 1.2 动态内存分配 1.3 C语言中分配内存的方式 1.4 C++中动态分配内存的方式 二.new和malloc的区别 2.1 属性 2.2 参数 ...

  6. iOS for 和 forin 的区别 以及注意事项

    一 效率: for VS for(... in ...) for 的应用范围广基本可以NSArray.NSArray以及C语言的数组等,而for(... in ...)仅限于NSArray.NSArr ...

  7. 一文全搞定:应届生offer,三方,劳动合同区别与注意事项

    文章目录 1 offer,三方,劳动合同是什么? 1.1 offer 1.2 三方协议 1.3 劳动合同 1.4 三者区别与联系 2 签订三方の注意事项 2.1 户口 2.2 工作内容 2.3 培训 ...

  8. 单点液位开关和连续液位传感器之间的区别及选择注意事项

    在开始选择液位传感器时,首先要了解液位开关和液位传感器之间的区别. 目前市场上有许多不同级别的传感技术可供选择,其中一些已经存在了几十年,例如在食品和饮料,制造业,汽车和白色家电等行业中都会使用到液位 ...

  9. 【量化交易】股票价格前复权与后复权的区别以及注意事项

    时不时就会看到到底是用股票前复权还是后复权价格的讨论,比如下面就是一个很经典的问法: "我用前复权价格计算指标的时候,发现会出现负价格,就没法取log了,应该是分红太多导致的,请问这种怎么处 ...

最新文章

  1. JAVA基础——编程练习(一)
  2. 如何在linux下解压缩rar格式的文件压缩包
  3. Oracle删除指定用户下所有对象
  4. 关于用notepad++确认代码中\r\n\t空格等不显示的字符
  5. ibatis中多表联接查询
  6. 箭头函数特殊性与普通函数的区别
  7. matlab 抽样判决代码,matlab抽样判决器
  8. 模板:快速莫比乌斯变换(FMT)+快速沃尔什变换(FWT)(多项式)
  9. 央行数字货币(CBDC)基础知识
  10. C++学习笔记 —— 回合制小游戏案例
  11. Java使用Lambda表达式多字段求和
  12. C语言中格式输出二进制的两种方法
  13. QT txt读写—论坛体编辑器
  14. 用Matplotlib绘制渐变的彩色曲线
  15. hive:函数:日期比较函数:获取当前日期 + date_add + date_sub函数获取前几天或后几天的日期
  16. HTML生日快乐-生日祝福(烟花+粒子动画)
  17. html中取颜色快捷键,ps中填充颜色的快捷键是什么?
  18. Linux 性能分析命令详解
  19. 对计算机知识的掌握,计算机操作基本知识
  20. Linux之C++毫秒级计时方法

热门文章

  1. 【数据库基础知识】plsql安装及配置
  2. 列表(list)和集合(set)
  3. 电子政务档案管理系统源码_高校档案信息化建设的必要性
  4. Android生命周期工具类,Android倒计时工具类
  5. cheaklist 人机交互界面_10个人机交互系统及界面的设计方案
  6. html5 视口,html5 – 在媒体查询中更改视口
  7. 造轮子是什么意思_聊聊在阿里工作一年的收获,什么是真正的技术能力?
  8. php 5范例代码查询辞典 pdf,PHP 5范例代码查询辞典
  9. 在服务器客户端怎么启用协议,如何启用客户机的WINS功能
  10. java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出