OS - 线程和进程的差别
进程是资源分配的基本单位,又是调度执行的基本单位。比如。用户执行自己的程序,系统就创建一个进程。并为它分配资源,包含各种表、内存空间、磁盘空间、I/O设备等。
然后。把该进程放入进程的就绪队列。进程调度程序选中它。为它分配CPU及其他有关资源,该进程才真正执行。所以,进程是系统中并发执行的单位。
在Mac、Windows NT等採用微内核结构的操作系统中。进程的功能发生了变化:它仅仅是资源分配的单位,而不再是调度执行的单位。在微内核系统中。真正调度执行的单位是线程。因此,实现并发功能的单位是线程。
线程是进程中运行运算的最小单位。亦即运行处理机调度的基本单位。
假设把进程理解为在逻辑上操作系统所完毕的任务,那么线程表示完毕该任务的很多可能的子任务之中的一个。
引入线程的优点
1、易于调度。
2、提高并发性。
通过线程可方便有效地实现并发性。
进程可创建多个线程来运行同一程序的不同部分。
3、开销少。创建线程比创建进程要快。所需开销非常少。
4、利于充分发挥多处理器的功能。
进程和线程的关系
1、一个线程仅仅能属于一个进程,而一个进程能够有多个线程,但至少有一个线程。
2、资源分配给进程。同一进程的全部线程共享该进程的全部资源。
3、处理机分配给线程,即真正在处理机上执行的是线程。
4、线程在运行过程中须要协作同步,不同进程的线程间须要利用消息通信的方法实现同步。
OS - 线程和进程的差别的更多相关文章
- [Other]面试复习笔记:线程与进程复习
基本概念 1. 进程的基本概念 线程(thread)是进程(processes)中某个单一顺序的控制流,也被称为轻量进程(lightweight processes).进程是表示资源分配的基本单位,又 ...
- Py修行路 python基础 (二十五)线程与进程
操作系统是用户和硬件沟通的桥梁 操作系统,位于底层硬件与应用软件之间的一层 工作方式:向下管理硬件,向上提供接口 操作系统进行切换操作: 把CPU的使用权切换给不同的进程. 1.出现IO操作 2.固定 ...
- Python网络编程之线程,进程
一. 线程: 基本使用 线程锁 线程池 队列(生产者消费者模型) 二. 进程: 基本使用 进程锁 进程池 进程数据共享 三. 协程: gevent greenlet 四. 缓存: memcache ...
- 线程 VS 进程
线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)地址空间:进程内的一个执行单元;进程至少有一个线程;它们共享进程的地址空间;而进程有自己独立的地址空间; (2)资源拥有: ...
- python成长之路 :线程、进程和协程
python线程 进程与线程的历史 我们都知道计算机是由硬件和软件组成的.硬件中的CPU是计算机的核心,它承担计算机的所有任务. 操作系统是运行在硬件之上的软件,是计算机的管理者,它负责资源的管理和分 ...
- 追踪app崩溃率、事件响应链、Run Loop、线程和进程、数据表的优化、动画库、Restful架构、SDWebImage的原理
1.如何追踪app崩溃率,如何解决线上闪退 当 iOS设备上的App应用闪退时,操作系统会生成一个crash日志,保存在设备上.crash日志上有很多有用的信息,比如每个正在执行线程的完整堆栈 跟踪信 ...
- Python开发【第九章】:线程、进程和协程
一.线程 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务 1.t ...
- Linux 线程与进程,以及通信
http://blog.chinaunix.net/uid-25324849-id-3110075.html 部分转自:http://blog.chinaunix.net/uid-20620288-i ...
- Day11 线程、进程、协程
创建线程第一种:import threadingdef f1(arg): print(arg) t = threading.Thread(target=f1, args=(123,))#t.start ...
随机推荐
- 菜鸟nginx源代码剖析数据结构篇(九) 内存池ngx_pool_t
菜鸟nginx源代码剖析数据结构篇(九) 内存池ngx_pool_t Author:Echo Chen(陈斌) Email:chenb19870707@gmail.com Blog:Blog.csdn ...
- (LeetCode)二叉树中和为某一值的路径
原体例如以下: Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that addin ...
- kentico中的page template的使用
父页面使用自己的template 子页面,也使用自己的template. 然后父页面中需要添加一个place holder. 子页面的继承,选择inherit only master page. 这样 ...
- Ubuntu开机报错:could not update ICEauthority file /home/user/.ICEauthority(转载)
解决方法如下: 一. 代码:sudo chown $USER:$USER /home/$USER/.ICEauthority sudo chmod 644 /home/$USER/.IC ...
- NSURLSession简介
NSURLSession是iOS7中新的网络接口,它与咱们熟悉的NSURLConnection是并列的.在程序在前台时,NSURLSession与NSURLConnection可以互为替代工作.注意, ...
- MacOS系统下简单安装以及配置MongoDB数据库(一)
最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. 项目一共四部分: 1.MacOS下 ...
- jquery应用实例1:手风琴特效
效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="U ...
- Unity 指定区域随机实例化预制体Prefab 代码
using UnityEngine; public class NewBehaviourScript : MonoBehaviour { public GameObject prefab; void ...
- ZBrush常用快捷键
ZBrush是一款数字雕刻和绘画软件,它以强大的功能和直观的工作流程彻底改变了整个三维雕刻行业.强大的功能离不开便捷的操作,为此ZBrush®提供了一系列常用操作快捷键,熟练掌握这些快捷键,可帮助您节 ...
- day10 强制类型转换(更新)
目录 强制类型转换 int() str() list() tuple() set() dict() 总结 强制类型转换 直接看总结 # 定义各个数据类型的值 num_int = 123 num_flo ...