multithreading - 任务与流程,真的有区别吗?

标签 multithreading process computer-science definition task

我正在攻读CS专业的期末考试,主题是分布式系统和操作系统。

我需要对术语“任务”,“过程”和“线程”进行良好的定义。到目前为止,我相信一个进程是运行(或挂起但已启动)程序的表示形式,它具有自己的内存,程序计数器,寄存器,堆栈等(进程控制块)。进程可以运行共享内存的线程,因此与必须通过IPC进行通信的进程相比,可以通过共享内存进行通信。

但是任务和流程之间有什么区别。我经常读到它们是可以互换的,并且不再使用任务一词。真的是这样吗?

最佳答案

流程和线程是机制,任务更具概念性。您可以排队工作以异步运行,例如在具有.NET的Windows上,该工作可以在线程池中的线程上运行。使用OpenMP,一项任务将成为您在一个内核上运行的for循环的一部分。

次要注意事项:在Windows上,还有作业,线程池和机械师用的纤维。另外,如果没有至少一个线程运行,则进程什么都不是。

关于multithreading - 任务与流程,真的有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560939/

相关文章:

android - Android 上如何确定设备内存不足

computer-science - 如何跟上最新的计算机科学?

c# - 从 C# 线程调用非托管代码

c# - 在 Windows 服务中等待线程停止

multithreading - 多个线程可以同时等待一个信号量

process - 如何在golang中的exec.command中添加空格

java - 如何从 Java 作为单独的进程运行 groovy?

ruby - Ruby 如何允许方法参数默认值从早期参数派生?

computer-science - 您最看重哪个计算机科学概念?

c++ - 在 C++ 中,我可以使用多线程工具将 UNIX 信号与我的主程序同步吗?