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

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

我感到像“过程”这样的词已被过分使用,而且还有硬件和软件线程。 像Erlang这样的语言的轻量级进程怎么样? 有明确的理由使用一个术语而不是另外一个术语吗? 浏览器


#1楼

  1. 线程在共享内存空间中运行,可是进程在单独的内存空间中运行
  2. 线程是一个轻量级进程,可是一个进程是一个重级进程。
  3. 线程是进程的子类型。

#2楼

关于并发编程的更多解释 安全

  1. 流程具备独立的执行环境。 流程一般具备一套完整的私有基本运行时资源; 特别是,每一个进程都有本身的存储空间。 并发

  2. 线程存在于一个进程中-每一个进程至少有一个。 线程共享进程的资源,包括内存和打开的文件。 这样能够进行有效的通讯,但可能会出现问题。 spa

牢记普通人, 操作系统

在计算机上,打开Microsoft Word和Web浏览器。 咱们称这两个过程线程

用Microsoft Word,您输入一些东西,它将自动保存。 如今,您将观察到编辑和保存是并行进行的-在一个线程上进行编辑,而后在另外一个线程上进行保存。 对象


#3楼

流程 :正在执行的程序称为流程 进程

线程 :线程是一种功能,可根据“一个与另外一个”的概念与程序的另外一部分一块儿执行,所以线程是进程的一部分。 事件


#4楼

如下是我从The Code Project的一篇文章中获得的内容。 我想它能够清楚地说明全部须要的内容。

线程是将工做负载拆分为单独的执行流的另外一种机制。 线程比进程轻。 这意味着,与完整的过程相比,它提供的灵活性较差,但因为操做系统设置较少,所以启动速度更快。 当一个程序包含两个或多个线程时,全部线程共享一个内存空间。 为进程分配了单独的地址空间。 全部线程共享一个堆。 可是每一个线程都有本身的堆栈。


#5楼

试图回答与Java世界有关的问题。

进程是程序的执行,可是线程是进程内的单个执行序列。 一个进程能够包含多个线程。 线程有时称为轻量级进程

例如:

示例1:JVM在单个进程中运行,而且JVM中的线程共享属于该进程的堆。 这就是为何多个线程能够访问同一对象的缘由。 线程共享堆并拥有本身的堆栈空间。 这样一来,一个线程对方法及其局部变量的调用就可使线程免受其余线程的影响。 可是堆不是线程安全的,所以必须同步以确保线程安全。

示例2:程序可能没法经过读取按键来绘制图片。 该程序必须充分注意键盘输入,而且一次不能处理多个事件的能力将致使麻烦。 解决此问题的理想方法是同时无缝执行一个程序的两个或多个部分。 线程使咱们可以作到这一点。 这里的“绘制图片”是一个过程,而读取按键是“子”过程(线程)。

相关文章
相关标签/搜索