美文网首页
【翻译】进程和线程的区别

【翻译】进程和线程的区别

作者: 富贵山庄王动 | 来源:发表于2017-06-30 15:39 被阅读0次

    原文链接http://www.differencebetween.info/difference-between-process-and-thread
    关键差异:在多线程中,线程和进程是两个联系紧密的术语。两个术语的主要差异是线程是进程的一部分。例如,一个进程可以包含一个或者多个线程,但是一个线程不能包含某个进程。

    在程序中,有两个基本的执行单元:进程和线程。他们都执行一系列的指令。他们都是由某个程序或者操作系统启动。这篇文章帮助你去区分这两个单元。

    一个进程是一个运行中的程序的实例。它包含了程序代码和它当前的活动。依赖于操作系统,一个进程可以由多个同时执行指令的执行线程构成。一个程序是一系列指令的集合;一个进程是这些指令的实际执行。

    进程有一个独立的执行环境,它拥有一套完整的私有的基本运行时资源。尤其是,每个进程拥有自己的内存空间。进程通常被认为与其他程序或应用程序相似。然而,单个应用程序的运行实际上可能是一组协作的进程。方便进程的通信,大多数操作系统使用IPC(进程间通信)资源,例如管道和套接字(sockets)。IPC资源也可用于不同系统上的进程之间的通信。虚拟机中的大多数应用程序作为单个进程运行。但是,它可以使用进程构建器对象创建其他进程。

    在计算机中,线程甚至可以执行可由操作系统独立管理的编程指令的最小序列。线程和进程的应用程序因操作系统而异。但是,线程由进程构成并存在于进程中。每个进程至少有一个线程。多个线程可以存在于一个进程,共享资源,这有助于线程之间的高效通信。

    在单处理器中,处理器在不同线程之间切换时进行多任务处理。它被称为多线程。切换发生的很频繁以至于线程或任务被用户认为是同时运行的。线程在多处理器或多核系统可以真正的同时运行,每个处理器或者核心同时执行单独的线程。

    综上所述,线程可以认为是轻量级的进程,因为他们包含简单的指令集合,可以在一个更大的进程运行。计算机可以同时运行多线程和多进程。

    比较进程和线程:

    名称 进程 线程
    定义 一个程序的正在执行的实例叫做进程 线程是进程的子集
    进程 它有自己的父进程的数据段副本 它可以直接访问其进程的数据段
    通信 进程必须使用进程间通信才可以和兄弟进程通信 线程可以直接和同一进程的其他线程通信
    开销 进程有大量的开销 线程几乎没有开销
    创建 新进程要求父进程的副本 新线程创建很容易
    控制 进程只能控制子进程 线程可以对处于相同进程的线程进行控制
    改变 父进程的任何改变都不会影响子进程 主线程的所有改变可以影响进程中其他线程的行为
    内存 在单独的内存空间运行 共享内存空间
    文件描述符 大多数文件描述符不共享 共享文件描述符
    文件系统 没有文件系统上下文共享 共享文件系统上下文
    信号 不共享信号处理 共享信号处理
    被控制 进程由操作系统控制 线程由开发者在程序中控制
    依赖 进程是独立的 线程不是独立的

    相关文章

      网友评论

          本文标题:【翻译】进程和线程的区别

          本文链接:https://www.haomeiwen.com/subject/ysficxtx.html