首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进程和线程之间有什么区别?

进程和线程之间有什么区别?
EN

Stack Overflow用户
提问于 2008-10-14 09:13:24
回答 34查看 1.3M关注 0票数 1.9K

进程和线程之间的技术区别是什么?

我觉得'process‘这个词被过度使用了,还有一些硬件和软件线程。用像二郎这样的语言来处理轻量级的进程怎么样?是否有明确的理由使用一个词而不是另一个术语?

EN

回答 34

Stack Overflow用户

回答已采纳

发布于 2008-10-14 09:15:58

进程和线程都是独立的执行序列。典型的区别是线程(相同进程)在共享内存空间中运行,而进程在单独的内存空间中运行。

我不知道您所指的“硬件”与“软件”线程是什么。线程是一种操作环境特性,而不是CPU特性(尽管CPU通常具有使线程高效的操作)。

Erlang使用"process“一词是因为它不公开共享内存的多编程模型。将它们称为“线程”将意味着它们具有共享内存。

票数 1.7K
EN

Stack Overflow用户

发布于 2008-10-14 09:43:50

此信息可在Microsoft的“学习”中找到:关于进程和线程

过程 每个进程提供执行程序所需的资源。进程具有虚拟地址空间、可执行代码、打开系统对象句柄、安全上下文、唯一进程标识符、环境变量、优先级类、最小和最大工作集大小以及至少一个执行线程。每个进程由一个线程启动,通常称为主线程,但可以从它的任何线程创建额外的线程。 线程 线程是进程中可以调度执行的实体。进程的所有线程共享其虚拟地址空间和系统资源。此外,每个线程维护异常处理程序、调度优先级、线程本地存储、唯一的线程标识符,以及系统将用于保存线程上下文直到其被调度的一组结构。线程上下文包括线程的机器寄存器集、内核堆栈、线程环境块和线程进程地址空间中的用户堆栈。线程也可以有自己的安全上下文,可以用来模拟客户端。 Microsoft Windows支持先发制人的多任务处理,这会产生同时从多个进程执行多个线程的效果。在多处理器计算机上,系统可以同时执行计算机上有处理器的线程。

票数 953
EN

Stack Overflow用户

发布于 2010-03-19 14:17:23

我从知识探索!博客复制了这个信息

过程:

  • 程序的执行实例称为进程。
  • 有些操作系统使用“任务”一词来指正在执行的程序。
  • 进程总是存储在主存中,也称为主存储器或随机存取存储器。
  • 因此,一个过程被称为一个活跃的实体。如果重新启动机器,它就会消失。
  • 多个进程可以与同一个程序相关联。
  • 在多处理器系统中,可以并行执行多个进程。
  • 在单处理器系统上,虽然没有实现真正的并行性,但应用了进程调度算法,并调度处理器一次执行每个进程,产生并发的错觉。
  • 示例:执行“计算器”程序的多个实例。每个实例都被称为一个过程。

线程:

  • 线程是进程的子集。
  • 它被称为“轻量级进程”,因为它类似于一个真正的进程,但是在进程的上下文中执行,并且共享内核分配给进程的相同资源。
  • 通常,一个进程只有一个控制线程-一次执行一组机器指令。
  • 进程也可以由并发执行指令的多个执行线程组成。
  • 多个控制线程可以利用多处理器系统上的真正并行性。
  • 在单处理器系统中,应用了线程调度算法,并调度处理器一次运行每个线程。
  • 进程中运行的所有线程共享相同的地址空间、文件描述符、堆栈和其他与进程相关的属性。
  • 由于进程的线程共享相同的内存,同步对进程中共享数据的访问具有前所未有的重要性。
票数 339
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/200469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档