多进程

进程是资源(CPU、内存等)分配的基本单位,它是程序执行时的一个实例。程序运行时系统就会创建一个进程,并为它分配资源,然后把该进程放入进程就绪队列,进程调度器选中它的时候就会为它分配CPU时间,程序开始真正运行。

Linux系统函数fork()可以在父进程中创建一个子进程,这样的话,在一个进程接到来自客户端新的请求时就可以复制出一个子进程让其来处理,父进程只需负责监控请求的到来,然后创建子进程让其去处理,这样就能做到并发处理。

多线程

线程是程序执行时的最小单位,它是进程的一个执行流,是CPU调度和分派的基本单位,一个进程可以由很多个线程组成,线程间共享进程的所有资源,每个线程有自己的堆栈和局部变量。线程由CPU独立调度执行,在多CPU环境下就允许多个线程同时运行。同样多线程也可以实现并发操作,每个请求分配一个线程来处理。

线程和进程各自有什么区别和优劣呢?

  • 进程是资源分配的最小单位,线程是程序执行的最小单位。

  • 进程有自己的独立地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段,这种操作非常昂贵。而线程是共享进程中的数据的,使用相同的地址空间,因此CPU切换一个线程的花费远比进程要小很多,同时创建一个线程的开销也比进程要小很多。

  • 线程之间的通信更方便,同一进程下的线程共享全局变量、静态变量等数据,而进程之间的通信需要以通信的方式(IPC)进行。不过如何处理好同步与互斥是编写多线程程序的难点。

  • 但是多进程程序更健壮,多线程程序只要有一个线程死掉,整个进程也死掉了,而一个进程死掉并不会对另外一个进程造成影响,因为进程有自己独立的地址空间。

现代操作系统:进程和线程总结相关推荐

  1. 操作系统 - 进程与线程的区别[超详解]

    操作系统 - 进程与线程的区别[超详解]面试高频考题

  2. 操作系统——进程和线程的区别

    操作系统--进程和线程的区别 最近学习了操作系统中的进程和线程这两个知识点,昨天老师给我们出了一道题:进程和线程的区别.听完题目后一脸懵逼,只想到了进程的一部分概念,回来之后就查书,找到了答案. 1. ...

  3. 操作系统——进程与线程の选择题整理

    进程与线程 1.进程与程序的根本区别是() A.静态和动态特点 B.是不是被调入内存 C.是不是具有就绪.运行和等待三种状态 D.是不是占有处理器 解析:选A 动态性是进程最重要的特性,操作系统引入进 ...

  4. 计算机操作系统“进程”与“线程”的通俗解析

    进程:进程是系统进行资源分配和调度的一个独立单位. 线程:线程是进程的一个实体,是CPU调度和分派的基本单位,线程自己基本上不拥有系统资源,只拥有一点在系统运行中必不可少的资源,但是它可与同属一个进程 ...

  5. 操作系统——进程与线程

    线程和进程的区别 1)调度:在传统的操作系统中,拥有资源的基本单位和独立调度.分派的基本单位都是进程.  而引入线程的操作系统,则把线程作为调度和分派的基本单位,而进程作为资源拥有的基本单位. 2)并 ...

  6. 现代操作系统-进程与线程

    多道程序设计:实际上CPU在各个进程之间来回切换.由于CPU在各进程之间来回快速切换,所以每个进程执行其运算的速度是不确定的,对编程进行编程时不能做出任何想当然的假设. 进程的创建与写时复制:在Uni ...

  7. [操作系统]——进程与线程

  8. 王道操作系统课代表 - 考研计算机 第二章 进程与线程 究极精华总结笔记

    本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结.希望对新一届的计算机考研人提供帮助!!!   关于对 进程与线程 章节知识点总结的十分全面,涵括了< ...

  9. 操作系统学习:进程、线程与Linux0.12初始化过程概述

    本文参考书籍 1.操作系统真相还原 2.Linux内核完全剖析:基于0.12内核 3.x86汇编语言 从实模式到保护模式 ps:基于x86硬件的pc系统 进程 进程是一种控制流集合,集合中至少包含一条 ...

  10. 【操作系统】进程 与 线程 详解(以及二者的比较)

    目录 1.CPU基本组成原理 2. 进程(process) 1.1 操作系统管理进程的方式 1.2 PCB中的属性 1.3 实现进程调度相关属性 1.3.1 状态 1.3.2 优先级 1.3.3 记账 ...

最新文章

  1. python 中主线程结束 子线程还在运行么_python 线程之一:线程的创建、启动及运行方式
  2. UML学生成绩管理系统需求分析
  3. python 内置方法赋值_Python内置数据结构之字符串str
  4. 洛谷 [POI2007]BIU-Offices 解题报告
  5. css知多少(7)——盒子模型
  6. elk日志系统中elasticsearch 索引read only 解决
  7. 【转】wget 使用技巧
  8. 用程序找出计算机c盘内容,电脑C盘空间空间清理方法
  9. 在线考试系统详细设计
  10. GMT与UTC的区别
  11. php毕业论文结论,科学网—如何写好学位论文的摘要和结论 - 王东升的博文
  12. 学校设备保修维修工单小程序开发制作
  13. Java练习——小游戏 模拟雷电
  14. XMU 1612 刘备闯三国之桃园结义 【二分】
  15. 虚拟机与本地电脑时间同步命令
  16. 仿豌豆荚实现android连接pc方法
  17. EOS主网上线后imtoken钱包和麦子钱包的操作
  18. JAVA_协同过滤算法商品推荐
  19. web前端期末大作业网页设计与制作 ——汉口我的家乡旅游景点 5页HTML+CSS+JavaScript
  20. JavaSE_语法基础

热门文章

  1. nginx+php-fpm 的配置下,php的错误日志
  2. 图的理解:深度优先和广度优先遍历及其 Java 实现
  3. C#中自定义类数组和结构数组的使用
  4. 数学图形(2.26) 3D曲线结
  5. 关于 原码 反码 补码 位运算
  6. 关于64位WIN7下正确建立JAVA开发环境(转
  7. C#里调用带输出参数的存储过程
  8. 怎么能方便的进行数据库存储过程的版本管理?
  9. 程序员必备的在线编程辅导平台之TutorialsPoint
  10. 警方办案滥用谷歌地理围栏,小伙三次骑车路过案发点被视作嫌犯