线程句柄和线程ID的区别
2024-08-31 22:22:20
●CreateThread() API 用于创建线程。 API 返回同时线程句柄,并通过参数得到线程标识符 (ID)。 线程句柄有完全访问权创建线程对象。 运行线程时线程 ID 唯一标识线程在系统级别。
●ID是在Windows系统范围内唯一标示Thread的。
●Handle是用来操作Thread的,可以有多个,每个HANDLE可以有不同的操作权限,在不同进程OpenThread得到的值不一样。
●线程的ID是系统全局的,其HANDLE是进程局部的.
●此ID只在线程的生存期内有效。
●HANDLE是os和client之间用来操作进程和线程一个桥梁,os有一张维护HANDLE的表单,里面大概放置了
HANDLE的引用计数和有关的属性,HANDLE是os标识进程和线程的东西,但是用户也可以用这个来标识进程和线程,对其操作;而ID是os用来标识进程和线程的,并且是全局唯一的, 但用户可以通过这个ID获得进程线程的HANDLE,多次得到的HANDLE并不一定是一样的.HANDLE是内核对象,而ID好像不是,并没有专门创建ID的函数.
●ID是CreateThread时操作系统自动生成的。
●线程的句柄和id是不同的。
在windows系统中,线程的id是唯一对应的,也就是说,如果两个线程返回相同的id,则他们必然是同一线程,反之一定是不同的线程。而线程的句柄并不是线程的唯一标识,线程的句柄只是用来访问该线程的的一个32位值,尽管相同的句柄一定标识同一线程,但同一线程可能拥有两个打开的句柄,因此,不能用句柄来区分两个线程是否是同一线程。
最新文章
- CSS魔法堂:";那不是bug,是你不懂我!"; by inline-block
- 玩转UICollectionViewLayout
- 单页Web应用:
- Backbone.js入门教程
- Python入门(一,Ubuntu环境搭建)
- Codeforces Round #264 (Div. 2) C
- 复合命令A等效于$a
- 积累的VC编程小技巧之工具条和状态条
- Storm源码阅读之SpoutOutputCollector
- 使用proxool连接池配置教程
- obj-c中-fobjc-arc-exceptions的解释
- Vue技术内幕 出去看看吧 榨干部分小细节
- 子弹短信光鲜的背后:网易云信首席架构师分享亿级IM平台的技术实践
- 每天一个linux命令(11):nl命令
- .NET Core 2.0 Cookie中间件 权限验证
- Jackson(ObjectMapper)的简单使用(可转xml)
- datalist控件及list属性
- 利用GDAL从内存中直接解析图像数据
- git 远程库 创建私钥
- 搞懂ZooKeeper的Watcher之源码分析及特性总结
热门文章
- Kafka及Spring Cloud Stream
- HDU3507_Print Article
- MachineLearning ---- lesson 2 Linear Regression with One Variable
- noip模拟题《戏》game
- 【开发工具IDE】Eclipse相关配置
- 【刷题】BZOJ 2142 礼物
- Spring Batch @SpringBatchTest 注解
- Opencv2.4.9+win7+VS2012一次性配置的方法--通过建立属性表永久配置
- 【BZOJ2727】双十字(动态规划,树状数组)
- Last Position of Target