当前位置: 首页 > 面试题库 >

线程ID与线程句柄

阳长恨
2023-03-14
问题内容

线程ID和线程句柄有什么区别?为什么两者都需要?Windows和Linux之间有区别吗?


问题答案:

据我所知,Linux的pthread库没有线程句柄的概念。pthread_create和其他pthreads函数,返回线程ID。

在Windows下,线程句柄不同于线程ID,就像文件句柄不同于文件名一样。

线程句柄是一个令牌,它使您可以对线程执行某些操作(通常等待或杀死它)。Win32具有用于许多对象的这些标记,并且通常将它们称为HANDLE。

令牌本质上是正在运行(或已停止)线程的指针,并且具有与之相关的一组功能,例如,您可以拥有一个句柄,该句柄允许您等待而不是杀死线程。以同样的方式,我们可以拥有一个只读的文件句柄。

这种间接级别可能有用也可能没有用,但这是Win32做到的方式,并且与它处理其他类型对象的方式基本一致。



 类似资料:
  • 问题内容: Python中的和模块之间有什么区别? 问题答案: 在Python 3中,已重命名为。它是用于实现的基础结构代码,普通的Python代码不应该靠近它。 公开了底层操作系统级别流程的原始视图。这几乎绝不是您想要的,因此在Py3k中重命名以表明它实际上只是实现细节。 添加了一些额外的自动记帐功能,以及一些便捷实用程序,所有这些使它成为标准Python代码的首选。

  • 问题内容: 看起来我已经搞砸了Java线程/ OS线程和解释性语言。 在开始之前,我确实了解绿色线程是Java线程,其中JVM处理线程,并且整个Java进程仅作为单个OS线程运行。因此,在多处理器系统上是没有用的。 现在我的问题是。我有两个线程A和B。每个线程都有10万行独立代码。我在多处理器系统上的Java程序中运行这些线程。每个线程都将被赋予一个本机OS线程来运行,该线程可以在不同的CPU上运

  • 问题内容: 我有一个固定的线程池,我可以将任务提交给该线程池(限制为 5个 线程)。如何找出这 5个 线程中的哪一个执行我的任务(例如“第3 个 线程中的第3 个 线程正在执行此任务”)? 问题答案: 使用:

  • 线程与进程是操作系统里面的术语,简单来讲,每一个应用程序都有一个自己的进程。 操作系统会为这些进程分配一些执行资源,例如内存空间等。 在进程中,又可以创建一些线程,他们共享这些内存空间,并由操作系统调用,以便并行计算。 我们都知道现代操作系统比如 Mac OS X,UNIX,Linux,Windows 等可以同时运行多个任务。 打个比方,你一边在用浏览器上网,一边在听敲代码,一边用 Markdow

  • 为什么单线程和多线程脚本具有相同的处理时间?多线程实现不是应该少1/#线程数吗?(我知道当您达到最大cpu线程时,回报会递减) 我搞砸了我的实现吗?