[Other]面试复习笔记:线程与进程复习
基本概念
1. 进程的基本概念
线程(thread)是进程(processes)中某个单一顺序的控制流,也被称为轻量进程(lightweight processes)。
进程是表示资源分配的基本单位,又是调度运行的基本单位。
比如: 用户运行自己的程序,系统就创建一个进程,并为它分配资源,包含各种表格、内存空间、磁盘空间、I/O设备等。
然后,把该进程放人进程的就绪队列。
进程调度程序选中它,为它分配CPU以及其他有关资源,该进程才真正运行。 所以,进程是系统中的并发运行的单位。
2. 线程的基本概念
在Mac、Windows NT等採用微内核结构的操作系统中,进程的功能发生了变化:它仅仅是资源分配的单位,而不再是调度运行的单位。 在微内核系统中,真正调度运行的基本单位是线程。因此,实现并发功能的单位是线程。 线程是进程中运行运算的最小单位,也就是运行处理机调度的基本单位。 如果把进程理解为在逻辑上操作系统所完毕的任务,那么线程表示完毕该任务的很多可能的子任务之中的一个。
比如: 如果用户启动了一个窗体中的数据库应用程序。操作系统就将对数据库的调用表示为一个进程。 如果用户要从数据库中产生一份工资单报表,并传到一个文件里,这是一个子任务。 在产生工资单报表的过程中。用户又能够输人数据库查询请求,这又是一个子任务。 这样,操作系统则把每一个请求――工资单报表和新输人的数据查询表示为数据库进程中的独立的线程。 线程能够在处理器上独立调度运行。这样。在多处理器环境下就同意几个线程各自在单独处理器上进行。 操作系统提供线程就是为了方便而有效地实现这样的并发性
引入线程的优点 1. 易于调度。
2. 提高并发性。通过线程可方便有效地实现并发性。进程可创建多个线程来运行同一程序的不同部分。 3. 开销少。创建线程比创建进程要快,所需开销非常少。。
4. 利于充分发挥多处理器的功能。
通过创建多线程进程。每一个线程在一个处理器上运行。从而实现应用程序的并发性。使每一个处理器都得到充分运行。
3. 线程的基本状态
就绪:调用线程的start方法后线程进入就绪状态
堵塞:线程调度系统将就绪状态的线程转为运行状态
运行:遇到synchronized语句时,由运行状态转为堵塞
结束:当线程关联的代码运行完后,线程变为结束状态
4. 线程与进程的差别
线程与进程的差别能够归纳为下面4点: 1)地址空间:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其他进程不可见。
2)通信方式:进程间通信IPC,线程间能够直接读写进程数据段(如全局变量)来进行通信。
须要进程同步和相互排斥手段的辅助,以保证数据的一致性。
3)调度切换:线程上下文切换比进程上下文切换要快得多。
4)二者均可并发运行,在多线程OS中,进程不是一个可运行的实体。
简而言之。一个程序至少有一个进程,一个进程至少有一个线程。
线程的划分尺度小于进程。使得多线程程序的并发性高。 另外,进程在运行过程中拥有独立的内存单元,而多个线程共享内存。从而极大地提高了程序的运行效率。 线程在运行过程中与进程还是有差别的。每一个独立的线程有一个程序运行的入口、顺序运行序列和程序的出口。 可是线程不能够独立运行。必须依存在应用程序中,由应用程序提供多个线程运行控制。
从逻辑角度来看。多线程的意义在于一个应用程序中,有多个运行部分能够同一时候运行。 但操作系统并没有将多个线程看做多个独立的应用。来实现进程的调度和管理以及资源分配。这就是进程和线程的重要差别。
进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动。进程是系统进行资源分配和调度的一个独立单位。 线程是进程的一个实体,是CPU调度和分派的基本单位。它是比进程更小的能独立运行的基本单位。
线程自己基本上不拥有系统资源。仅仅拥有一点在运行中不可缺少的资源(如程序计数器。一组寄存器和栈), 可是它可与同属一个进程的其他的线程共享进程所拥有的所有资源。 一个线程能够创建和撤销还有一个线程;同一个进程中的多个线程之间能够并发运行。
5. 多线程有几种实现方法
多线程有两种实现方法。
一种是继承Thread类,一种是实现Runnable接口。
同步有两种方法。
一种同步方法,一种同步代码。各自是synchronized,wait与notify
6. 多线程同步和相互排斥异同
线程同步是指线程之间所具有的一种制约关系,一个线程的运行依赖还有一个线程的消息。当它没有得到还有一个线程的消息时应等待,直到消息到达时才被唤醒。 线程相互排斥是指对于共享的进程系统资源,在各单个线程訪问时的排它性。 当有若干个线程都要使用某一共享资源时,不论什么时刻最多仅仅同意一个线程去使用。 其他要使用该资源的线程必须等待,直到占用资源者释放该资源。线程相互排斥能够看成是一种特殊的线程同步。
[Other]面试复习笔记:线程与进程复习的更多相关文章
- Python3基础笔记---线程与进程
参考博客:Py西游攻关之多线程(threading模块) 一.并发与并行的区别 并发:交替做不同事的能力并行:同时做不同事的能力 行话解释:并发:不同代码块交替执行的性能并行:不同代码块同时执行的性能 ...
- 前端复习笔记--1.html标签复习速查
概览 文档章节 <body> <header> <nav> 导航 <aside> 表示和主要内容不相关的区域 <article> 表示一个独 ...
- Python复习笔记(七)线程和进程
1. 多任务 并行:真的多任务 并发:假的多任务 2. 多任务-线程 Python的 Thread模块是比较底层的模块,Python的 Threading模块 是对Thread做了一些包装,可以更加方 ...
- [Java基础] Java线程复习笔记
先说说线程和进程,现代操作系统几乎无一例外地采用进程的概念,进程之间基本上可以认为是相互独立的,共享的资源非常少.线程可以认为是轻量级的进 程,充分地利用线程可以使得同一个进程中执行多种任务.Java ...
- java8--多线程(java疯狂讲义3复习笔记)
多线程这块,平时用的框架里都封装好了,只有写批处理和工具包时用过几次.现在水平仅仅限于会用的程度,需要全面深入学习多线程. 主要内容:创建线程,启动线程,控制线程,多线程的同步,线程池,使用线程安全的 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- javaSE复习之——线程
线程其实就是程序执行的一条路径,一个进程中可以包含多条线程,多线程并发执行可以提高程序效率,可以同使完成多项任务 多线程的应用场景 迅雷多线程一起下载 服务器同时处理多个客户请求 多线程原理(单核CP ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
随机推荐
- 数据库中的Schema是什么?
在数据库中,schema(发音 “skee-muh” 或者“skee-mah”,中文叫模式)是数据库的组织和结构,schemas andschemata都可以作为复数形式.模式中包含了schema对象 ...
- vuex如何管理需要即时更新的全局变量
自己在使用vue练习开发的时候遇到全局变量无法即时更新的问题,查了资料之后得出结论使用vuex能够快速解决该问题,但是看了好多人讲解vuex的教程自己跟着去做都没解决自己想要的,最后找到一个比较容易理 ...
- [Python3网络爬虫开发实战] 5.2-关系型数据库存储
关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来保存的,所以它的存储方式就是行列组成的表,每一列是一个字段,每一行是一条记录.表可以看作某个实体的集合,而实体之间存在联系,这就需要表与表之 ...
- db2,差集
--漏报的数据 FROM A LEFT JOIN A′ ON 交集的条件 WHERE A′.xx IS NULL --多报的数据 FROM A′ LEFT JOIN A ON 交集的条件 WHERE ...
- PHP导出超大的CSV格式的Excel表方案
场景和痛点 说明 我们工作场景都常会导出相关的excel数据,有时候需要大量的数据,10W,100W都有可能 我们现有方案都是直接利用phpexcel等类库来操作,phpexcel的load加载或是写 ...
- python 库文件版本收集及安装
版本收集:pip freeze > require.txt版本安装:pip install -r require.txt
- Phong 光照模型(镜面反射)
Phong 光照模型 镜面反射(高光),是光线经过物体表面,反射到视野中,当反射光线与人的眼睛看得方向平行时,强度最大,高光效果最明显,夹角为90度时,强度最小. specular = I*R*V: ...
- (dede)织梦系统二次开发笔记
(dede)织梦系统二次开发记录 --soulsjie 一.模板常用文件说明 模板文件都在文件夹templets下,我们以默认模板(default)为例,对模板文件结构进行分析: 首页模板文件目录 \ ...
- Node.js & module system
Node.js & module system Node.js v10.9.0 Documentation https://nodejs.org/api/modules.html#module ...
- Partitioned Replacement for Cache Memory
In a particular embodiment, a circuit device includes a translation look-aside buffer (TLB) configur ...