社区
进程/线程/DLL
帖子详情
线程的handle和threadid
nitrogen
2000-09-02 10:56:00
各位兄弟, 有没有方法得到通过线程的Handle得到线程ID? 以及通过线程ID得到线程的一个handle?
...全文
98
1
打赏
收藏
线程的handle和threadid
各位兄弟, 有没有方法得到通过线程的Handle得到线程ID? 以及通过线程ID得到线程的一个handle?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Holly
2000-09-03
打赏
举报
回复
以前的Windows不提供这种方法,因为这种方法太不安全!
但在WINDOWS2000中有了一个函数OpenThread()可以通过ID得到handle,也可以通过这个Handle改变线程的优先级和访问的权限!
根据
线
程ID获取其
Handle
最近开始拜读侯捷译注的《multithreading applications in win32》,以增强对windows
线
程的理解。 今天看到一处对
线
程ID与
Handle
的叙述,似乎有点问题。 书中原文: “为了安全防护的缘故,你不可能根据一个
线
程的ID而获得其
handle
。” —— 摘自第一篇(上路吧,
线
程)中第二章(
线
程的第一次接触)第三节(核心对象)第一段末尾
线
程ID与
线
程句柄有啥不同
当某个程序创建一个
线
程后,会产生一个
线
程的句柄,
线
程的句柄主要用来控制整个
线
程的运行,例如停止、挂起或设置
线
程的优先级等操作。
线
程句柄与
线
程ID的区别: ●CreateThread() API 用于创建
线
程。 API 返回同时
线
程句柄和
线
程标识符 (ID)。
线
程句柄有完全访问权创建
线
程对象。 运行
线
程时
线
程 ID 唯一标识
线
程在系统级别。 ●ID是在Windows系统范围内唯一标示Thread的。 ●
Handle
是用来操作Thread的,可以有多个,每个
HANDLE
可以有不同的操作权限,在不同进程O
线
程句柄
HANDLE
与
线
程ID的关系
什么是句柄 句柄是一种指向指针的指针。我们知道,所谓指针是一种内存地址。应用程序启动后,组成这个程序的各对象是住留在内存的。如果简单地理解,似乎我们只要获知这个内存的首地址,那么就可以随时用这个地址访问对象。但是,如果您真的这样认为,那么您就大错特错了。 我们知道,Windows是一个以虚拟内存为基础的操作系统。在这种系统环境下,Windows内存管理器经常在内存中...
线
程、
线
程句柄、
线
程ID
在windows系统中,
线
程的id是唯一对应的,也就是说,如果两个
线
程返回相同的id,则他们必然是同一
线
程,反之一定是不同的
线
程。而
线
程的句柄并不是
线
程的唯一标识,
线
程的句柄只是用来访问该
线
程的的一个32位值,尽管相同的句柄一定标识同一
线
程,但同一
线
程可能拥有两个打开的句柄,因此,不能用句柄来区分两个
线
程是否是同一
线
程。在 Windows 中,大多数对象是由包含创建这些对象的
线
程的进程拥有的。当一个
线
程终止运行时,在与它相关联的
线
程内核对象的所有未结束的引用关闭之前,该内核对象不会自动被释放。
C++11
线
程库std::thread中提取
线
程id
C++有了支持多
线
程的thread库,只需要包含头文件#include <thread>就能使用,那么如何获取一个
线
程的id呢? thread中提供了std::thread::get_id()这个方法,这个方法返回的是_M_id,类型是std::thread::id: private: id _M_id; thread::id ...
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章