• windows笔记用哪个创建线程CreateThread还是_beginthread


    用哪个创建线程CreateThread还是_beginthread也许很多人说,这还用说,用_beginthread啊。很多人都这样说,很多书也这样写。不过我觉得还是得具体问题具体分析。

     

    我会看情况来使用CreateThread_beginthread

     

    如果我不使用那几个CRT函数的话。我会用CreateThread来创建我的线程。

    理由:

    1.         _beginthreadex函数只存在于C/C + +运行期库的多线程版本中。

    2.         调用CreateThread 更简单一些,不像_beginthreadex要对参数做一些转换。

    HANDLE hThead = (HANDLE)_beginthreadex(NULL, 0, (PTHREAD_START)Thead, NULL, 0, (unsigned*)&dwTheadID);   

    3.         更直接一些,_beginthreadex最后也是调用CreateThread的。

    4.         _beginthreadex为分配tiddata带来的开销。(虽然这开销很小)

     

    如果要用那几个CRT函数,不得不用_beginthreadex,我们可以为它定义一个宏。使用起方便一些。

    #define BEGINTHREADEX(psa, cbStack, pfnStartAddr,    \

       pvParam, fdwCreate, pdwThreadId)                  \

          ((HANDLE)_beginthreadex(                       \

             (void *)        (psa),                      \

             (unsigned)      (cbStack),                  \

             (PTHREAD_START) (pfnStartAddr),             \

             (void *)        (pvParam),                  \

             (unsigned)      (fdwCreate),                \

             (unsigned *)    (pdwThreadId)))

    本文地址:http://www.cnblogs.com/fangyukuan/archive/2010/09/02/1816196.html

     


  • 相关阅读:
    前端面试题
    Less 中的嵌套规则与 & 符号的使用
    组件的生命周期
    222
    221
    twemproxy代理memcache(3)
    memcache数据迁移与解决方案(2)
    mencache的原理与应用(1)
    yield推荐,理解协程的最佳入口
    上下文管理器的实现
  • 原文地址:https://www.cnblogs.com/fangyukuan/p/1816196.html
Copyright © 2020-2023  润新知