关于线程的术语

时间:2009-07-19 11:49:20

标签: operating-system terminology

如果线程中的函数要返回,我们如何描述这种行为。

  1. 线程返回。

  2. 线程正在消亡。

  3. “线程死了”是什么意思?

3 个答案:

答案 0 :(得分:1)

根据我的理解,线程基本上是内核数据结构。您可以通过系统API创建和销毁线程。如果您只是创建一个线程,启动它执行,并且它用完了代码,内核可能会将其置于非执行状态。在非托管代码中,您仍然必须释放该资源。

然后是线程池。在这种情况下,您将工作排队,由线程池完成,平台负责挑选线程并执行您的工作。工作完成后,线程将返回到线程池。该平台负责创建和销毁线程,以平衡可用线程与工作负载和系统资源。

答案 1 :(得分:1)

从Java 1.3开始,引入了六态线程模型。这包括以下状态:

  1. 准备运行:创建线程并等待线程调度程序选择运行
  2. 正在运行:线程正在执行。
  3. 等待:线程处于阻塞状态,等待一些外部处理完成(如I / O)。
  4. 睡觉:线程被强制通过.sleep()
  5. 进入睡眠状态
  6. 已阻止开启I / O :完成后将进入状态1(例如,读取一个数据字节)。 同步:获取锁定后将进入状态1。
  7. 终止):线程已完成工作且无法恢复。
  8. 今天很少使用“死”一词,几乎完全改为“终止”。这两个是等价的。

答案 2 :(得分:0)

大多数线程API的工作原理是要求操作系统代表您运行由您提供的特定功能。当此函数最终返回时(例如通过return语句或到达其代码的末尾),operationg系统结束该线程。

至于“死”线程 - 这不是我在线程API中使用过的术语。