关闭线程句柄并不代表终止线程

原创 2006年05月18日 18:19:00
刚才看到一篇文章里实现的简单线程类(原文:http://blog.csdn.net/wei801004/archive/2006/05/18/744341.aspx),注意到这段代码似乎认为简单地CloseHandle线程就可以终止一个线程,原文的代码如下,注释是我添的:
typedef unsigned (WINAPI *PTHREADFUN)(LPVOID lpParameter);

class CThread {
public:
CThread(void) {}
~CThread(void) {}
void Start(void);
void Stop(void) const { CloseHandle(m_hThread); } //CloseHandle并不代表就stop了线程
//同时函数也不应该是const的,因为
//关闭了句柄应该把m_hThread置为空

static DWORD WINAPI ThreadFun(LPVOID lpParameter); //似乎应该是私有的
virtual DWORD WINAPI ThreadWorkItem(LPVOID lpParameter) = 0;
private:
HANDLE m_hThread;
DWORD m_dwThreadID;
};

多线程,线程创建及关闭句柄存在的问题,终止线程的运行的几个函数

多线程的编程在Win32方式下和MFC类库支持下的原理是一致的,进程的主线程在任何需要的时候都可以创建新的 线程。当线程函数执行完任务后,自动中止线程;当进程结束后,所有的线程都中止。 在Wind...
  • hanyujianke
  • hanyujianke
  • 2013年01月21日 14:28
  • 4264

多线程CreateThread()之后,CloseHandle()为什么不会直接关闭线程。

在调用CreateHandle创建线程之后,线程内核对象的引用计数不为1,再CloseHandle就会使其引用计数减至0,系统就会销毁该内核对象, 那为什么一般要立即执行CloseHandle()函数...
  • Leave_RAINBOW
  • Leave_RAINBOW
  • 2016年03月13日 19:04
  • 868

linux句柄泄露问题查看

背景: 我们在开发linux在线服务器的时候经常会遇会句柄泄露的问题。因为在linux系统设计里面遵循一切都是文件的原则,即磁盘文件、目录、网络套接字、磁盘、管道等,所有这些都是文件,在我们进行打开的...
  • daofengliu
  • daofengliu
  • 2014年07月27日 15:14
  • 6849

线程ID与线程句柄的关系

很多人不了解线程ID的作用,现进行一定的解释,如有疑问可以留言。本文区分了线程ID 与线程句柄的作用,详细区别可以参考响应的操作系统方面的知识以及MFC相关的知识。...
  • Atlas12345
  • Atlas12345
  • 2015年05月20日 10:13
  • 470

如何终止java线程

终止线程的三种方法      有三种方法可以使终止线程。      1.  使用退出标志,使线程正常退出,也就是当run方法完成后线程终止。      2.  使用stop方法强行终...
  • anhuidelinger
  • anhuidelinger
  • 2013年09月16日 19:51
  • 158980

线程句柄作WaitForSingleObject的参数是什么意思?

[cpp] view plaincopy #include    #include       DWORD WINAPI Fun1Proc(LPVOID lpPar...
  • L_Andy
  • L_Andy
  • 2015年01月28日 11:22
  • 1093

C# 中关闭当前线程的四种方式

转自:http://blog.csdn.net/yang1994/article/details/7947198 net类库已经帮助我们实现了窗口的关闭,如果此窗口是系统的主窗口,关闭此窗口即应...
  • u012252959
  • u012252959
  • 2016年01月12日 14:40
  • 9636

线程、线程句柄、线程ID的关系

什么是句柄:     句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时...
  • qazwsx185313301
  • qazwsx185313301
  • 2014年03月30日 17:38
  • 996

获取进程pid、根据进程pid获取线程pid、获取线程进程句柄

======================================= 获取进程pid ======================================= #include ...
  • li_jian_xing
  • li_jian_xing
  • 2014年12月16日 10:11
  • 2832

Android正确关闭线程

一般不使用这种方法关闭线程,Thread.interrupt() 较暴力,虽然进行 mThread.interrupt(); mThread = null; 终止了线程,但查看源码我们发现: in...
  • zhangty0223
  • zhangty0223
  • 2016年01月18日 12:38
  • 13072
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关闭线程句柄并不代表终止线程
举报原因:
原因补充:

(最多只允许输入30个字)