【问题标题】:I need to make sure my programming terminology is correct我需要确保我的编程术语是正确的
【发布时间】:2013-08-17 22:34:37
【问题描述】:

我试图找到合适的词来定义两个不同的概念。在对在线计算机科学词典做了一些研究之后,我想我找到了答案。我只需要有人确认。下面,我记录了这两个概念以及我认为描述它们的词语。

Procedure - 一组脱离程序主要流程的指令。指令完成后,将向调用过程的点返回一个值,然后从那里继续流程。

线程 - 一组不会脱离程序主要流程的指令。一个线程在程序旁边运行。

【问题讨论】:

  • 我会说一个线程脱离了程序的主要流程,因此被允许同时运行。线程可以包含过程。您需要澄清“主流”的含义,因为它相当含糊。
  • 我已经尽力回答了这个问题,但它更适合programmers.stackexchange.com吗?

标签: computer-science terminology


【解决方案1】:

一个过程是指编写的代码;这是一个为你做某事的命名事物。您可以将其用作黑匣子,即,您将参数放入其中,您会得到一些结果。

线程 就其最佳字面意义而言,就是您的计算机在执行 某些代码时将遵循的一行或一系列指令。从这个意义上说,线程是无视过程的。

TL;DR:过程是一段代码,线程是正在执行代码的东西。

【讨论】:

  • 我认为你说得比我更简洁。但是在这个意义上,你如何区分线程和进程呢?也许这与问题无关,但是线程通常具有作为轻量级进程的含义,而不仅仅是执行代码的东西,对吗?
  • 嗯,一个进程通常定义为一个地址空间加上一个线程。这就是你所需要的:工作的空间,加上工作的人。我认为“轻量级”进程视图来自多线程,其中一个地址空间中有多个线程;但恕我直言,这种观点有些误导。
【解决方案2】:

很多这些东西都是特定于语言的,所以我会尽量做到“外行”和通用。

在您在问题中使用的意义上,它们不一定是可定义的。线程是一种与程序的其余部分同时执行的过程的实例。它们不是彼此的对立面/赞美。

过程,在这个一般意义上,听起来像函数、方法、子例程等的术语。它只是一个逻辑分离的代码块,可以根据需要调用。

线程可能只是对过程的异步调用,它通常与调用线程共享相同的内存空间。

另一种说法,你有你的主线程,它从上到下执行,沿途调用任何过程。被调用的过程/函数/方法等仍然是主线程的一部分。您可以生成一个新线程供操作系统管理,该线程有自己的一组过程/命令要执行,但(通常)与主(或调用)线程共享内存空间。

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    相关资源
    最近更新 更多