社区
进程/线程/DLL
帖子详情
线程的handle和threadid
nitrogen
2000-09-02 10:56:00
各位兄弟, 有没有方法得到通过线程的Handle得到线程ID? 以及通过线程ID得到线程的一个handle?
...全文
97
1
打赏
收藏
线程的handle和threadid
各位兄弟, 有没有方法得到通过线程的Handle得到线程ID? 以及通过线程ID得到线程的一个handle?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Holly
2000-09-03
打赏
举报
回复
以前的Windows不提供这种方法,因为这种方法太不安全!
但在WINDOWS2000中有了一个函数OpenThread()可以通过ID得到handle,也可以通过这个Handle改变线程的优先级和访问的权限!
根据
线程
ID
获取其
Handle
最近开始拜读侯捷译注的《multi
thread
ing applications in win32》,以增强对windows
线程
的理解。 今天看到一处对
线程
ID
与
Handle
的叙述,似乎有点问题。 书中原文: “为了安全防护的缘故,你不可能根据一个
线程
的
ID
而获得其
handle
。” —— 摘自第一篇(上路吧,
线程
)中第二章(
线程
的第一次接触)第三节(核心对象)第一段末尾
线程
ID
与
线程
句柄有啥不同
当某个程序创建一个
线程
后,会产生一个
线程
的句柄,
线程
的句柄主要用来控制整个
线程
的运行,例如停止、挂起或设置
线程
的优先级等操作。
线程
句柄与
线程
ID
的区别: ●Create
Thread
() 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写文章