zoukankan      html  css  js  c++  java
  • 进程与线程

    进程是程序的一次执行,线程可以理解为进程中的执行的一段程序片段。

    一个程序至少有一个进程,一个进程至少有一个线程。
    进程是操作系统资源分配的基本单位,而线程是操作系统执行的最小单位。

    地址空间和资源分配:进程有独立的地址空间,比如在linux下面启动一个新的进程,系统必须分配给它独立的地址空间,建立众多的数据表来维护它的代码段、堆栈段和数据段,这是一种非常昂贵的多任务工作方式。而运行一个进程中的线程,它们之间共享大部分数据,使用相同的地址空间,因此线程的创建,销毁及调度的开销一般都远小于进程。当然,线程拥有自己的局部变量和堆栈(注意不是堆)。
    通信:线程之间的通信比较方便。同一进程下的线程共享数据(比如全局变量,静态变量),通过这些数据来通信不仅快捷而且方便,当然如何处理好这些访问的同步与互斥正是编写多线程程序的难点。而进程之间的通信只能通过进程通信的方式进行。
    相互关系:进程拥有一个完整的虚拟地址空间,不依赖于线程而独立存在;线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被强制退出并清除。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

    进程和线程有时候并不完全区分,而往往根据上下文理解其含义。

    参考资料:

    [1] 面试总结-进程、线程与多线程
    http://www.cnblogs.com/obama/archive/2013/04/12/3016509.html

  • 相关阅读:
    2.WSDL 文档
    SQL SERVER取分组数据第一条:查出每个班级的成绩第一名
    生成随机字符串
    js返回上一页并刷新的几种方法
    SQL 单表查询多个计算的值
    SQL 从字符串中提取数字
    SQL 视图和表
    WebSrevice (2)
    WebSrevice (1)
    CSS中如何选择ul下li的奇数、偶数行
  • 原文地址:https://www.cnblogs.com/li-chong/p/3251415.html
Copyright © 2011-2022 走看看