我正在努力寻找合适的词来定义两个不同的概念。在对在线计算机科学词典进行一些研究后,我想我找到了答案。我只需要有人来证实。下面,我写下了两个概念和我认为描述它们的文字。
过程 - 一组脱离程序主流程的指令。一旦指令完成,就会返回一个值到调用过程的点,然后流程从那里继续。
线程 - 一组不会脱离程序主流程的指令。一个线程沿着程序运行。
答案 0 :(得分:3)
程序是指书面代码;这是一个为你做点什么的名字。你可以把它当作一个黑盒子,也就是说,你把你的参数放进去,你会得到一些结果。
线程是最好的字面意义,只是在执行某些代码时计算机器将遵循的一行或一系列指令。从这个意义上说,一个线程无视程序。
TL; DR:一个过程是一段代码,一个线程正在执行代码。
答案 1 :(得分:1)
很多这些东西都是特定于语言的,所以我会尽量做为“外行”和通用。
在你在问题中使用的意义上,它们不一定是可定义的。线程是一种与程序其余部分同时执行的过程实例。它们不是彼此的对立面/赞美。
在一般意义上,过程听起来像是函数,方法,子例程等的术语。它只是一个逻辑上分离的代码块,可以根据需要调用。
线程可能只是对过程的异步调用,它通常与调用线程共享相同的内存空间。
另一种放置它的方法,你有你的主线程,从上到下执行,调用任何程序。被调用的过程/函数/方法等仍然是主线程的一部分。您可以为要管理的操作系统生成一个新线程,该线程有自己的一组程序/命令要执行,但(通常)与主(或调用)线程共享一个内存空间。