请教几种创建线程函数的区别

标  题: [合集] 请教几种创建线程函数的区别。

发信站: 水木社区 (Wed Oct 11 16:43:15 2006), 站内

☆─────────────────────────────────────☆ 

  zealotkuihua (葵花) 于  (Tue Oct  3 13:28:38 2006)  提到:

接触多线程编程有一段时间了。发现有多种创建线程的函数

1。 HANDLE WINAPI CreateThread(

  LPSECURITY_ATTRIBUTES lpThreadAttributes,

  SIZE_T dwStackSize,

  LPTHREAD_START_ROUTINE lpStartAddress,

  LPVOID lpParameter,

  DWORD dwCreationFlags,

  LPDWORD lpThreadId

);

2。uintptr_t _beginthread(

  void( __cdecl *start_address )( void * ),

  unsigned stack_size,

  void *arglist

);

uintptr_t _beginthreadex(

  void *security,

  unsigned stack_size,

  unsigned ( __stdcall *start_address )( void * ),

  void *arglist,

  unsigned initflag,

  unsigned *thrdaddr

);

3。CWinThread* AfxBeginThread(

  AFX_THREADPROC pfnThreadProc,

  LPVOID pParam,

  int nPriority = THREAD_PRIORITY_NORMAL,

  UINT nStackSize = 0,

  DWORD dwCreateFlags = 0,

  LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL

);

CWinThread* AfxBeginThread(

  CRuntimeClass* pThreadClass,

  int nPriority = THREAD_PRIORITY_NORMAL,

  UINT nStackSize = 0,

  DWORD dwCreateFlags = 0,

  LPSECURITY_ATTRIBUTES lpSecurityAttrs = NULL

);

这3种创建线程函数创建的线程有什么区别吗?

哪位大虾指点一下。

☆─────────────────────────────────────☆ 

  zealotkuihua (葵花) 于  (Wed Oct  4 13:51:22 2006)  提到:

难道我问错了版块?

【 在 zealotkuihua (葵花) 的大作中提到: 】                                     

: 接触多线程编程有一段时间了。发现有多种创建线程的函数                         

: 1。 HANDLE WINAPI CreateThread(                                             

:  LPSECURITY_ATTRIBUTES lpThreadAttributes,

: ...................                                                         

                                                                               

                                                                               

☆─────────────────────────────────────☆ 

  icubaby (不吃草的羊) 于  (Wed Oct  4 14:13:19 2006)  提到:

_beginthread and _beginthreadex are functions in std C library. _beginthreadex

is an extended version of _beginthread. CreateThread is a WINDOWS API, which

invoke _beginthreadex internally. AfxBeginThread is a global function in MFC,

which invokes CreateThread internally.

【 在 zealotkuihua (葵花) 的大作中提到: 】                                     

: 接触多线程编程有一段时间了。发现有多种创建线程的函数                         

: 1。 HANDLE WINAPI CreateThread(                                             

:  LPSECURITY_ATTRIBUTES lpThreadAttributes,                                 

: ...................

                                                                               

                                                                               

                                                                               

☆─────────────────────────────────────☆ 

  ftofficer (USTC::聪) 于  (Thu Oct  5 23:24:14 2006)  提到:

                                                                               

【 在 icubaby (不吃草的羊) 的大作中提到: 】                                   

: _beginthread is in std C library. _beginthreadex is an extended version of   

_beginthread.                                                                 

两者不是std C library的函数。

而是MS C Runtime扩展函数。

: CreateThread is a WINDOWS API, which invoke _beginthreadex internally.       

不是CreateThread调用_beginthreadex,而是_beginthreadex调用CreateThread.

: AfxBeginThread is a global function in MFC, which invokes Cr                 

: ...                                                                         

总体来说,CreateThread是Windows的API函数,提供操作系统级别的创建线程的操作。没有

太多额外的操作,直接调用到你的回调函数。_beginthreadex和_beginthread在回调入口函

数之前进行一些线程相关的CRT的初始化操作。AfxBeginThread内部调用了_beginthreadex

,并在此之前进行一些MFC相关的初始化工作。

                                                                               

                                                                               

                                                                               

☆─────────────────────────────────────☆ 

  bore (总有一些时候情绪比较低落|a za a za) 于  (Fri Oct  6 00:28:44 2006)  提?

                                                                               

错了吧.

_beginthread,_beginthreadex调CreateThread吧.

CreateThread某些时候有副作用而_beginthreadex没有,说明是_beginthreadex 调了

CreateThread

【 在 icubaby (不吃草的羊) 的大作中提到: 】                                   

: _beginthread and _beginthreadex are functions in std C library.             

_beginthreadex is an extended version of _beginthread. CreateThread is a       

WINDOWS API, which invoke _beginthreadex internally. AfxBeginThread is a global

function in MFC, which invokes CreateThread internally.                       

                                                                               

                                                                               

                                                                               

                                                                               

☆─────────────────────────────────────☆ 

  yennar (原云) 于  (Fri Oct  6 08:02:15 2006)  提到:

                                                                               

总之不管谁都回最终回到CreateThread

【 在 bore (总有一些时候情绪比较低落|a za a za) 的大作中提到: 】               

: 错了吧.                                                                     

: _beginthread,_beginthreadex调CreateThread吧.                                 

: CreateThread某些时候有副作用而_beginthreadex没有,说明是_beginthreadex 调了   

CreateThread                                                                   

                                                                               

                                                                               

                                                                               

                                                                               

                                                                               

☆─────────────────────────────────────☆ 

  wjie (faint) 于  (Fri Oct  6 11:22:34 2006)  提到:

如果一个线程自己卡死了,有办法在主线程里把它强行结束吗?how

                                                                               

【 在 yennar (原云) 的大作中提到: 】                                           

: 总之不管谁都回最终回到CreateThread                                           

                                                                               

                                                                               

                                                                               

                                                                               

☆─────────────────────────────────────☆ 

  yennar (原云) 于  (Fri Oct  6 18:45:39 2006)  提到:

TerminateThread

可以考虑“看门狗”的设计思路

                                                                               

【 在 wjie (faint) 的大作中提到: 】                                           

: 如果一个线程自己卡死了,有办法在主线程里把它强行结束吗?how 

 

你可能感兴趣的:(多线程,编程,C++,windows,mfc)