
操作系统
代码学习
代码
展开
-
用户态和内核态(转载)
基本概念 内核态: CPU可以访问内存所有数据, 包括外围设备, 例如硬盘, 网卡. CPU也可以将自己从一个程序切换到另一个程序 用户态: 只能受限的访问内存, 且不允许访问外围设备. 占用CPU的能力被剥夺, CPU资源可以被其他程序获取 为什么要有用户态和内核态 由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两...转载 2019-07-22 22:04:25 · 332 阅读 · 0 评论 -
说线程和进程的区别
概念 (1)进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发; (2)线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的 并发; 区别 1.一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。线程依赖于进程而存在。 2.进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。 3.进程是资源分配的最小单...原创 2019-07-22 22:14:30 · 168 阅读 · 0 评论 -
进程间的八种通信方式----共享内存是最快的 IPC 方式
1.无名管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。 2.高级管道(popen):将另一个程序当做一个新的进程在当前程序进程中启动,则它算是当前程序的子进程,这种方式我们成为高级管道方式。 3.有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。 4....转载 2019-09-10 15:27:23 · 900 阅读 · 1 评论 -
线程通信 3种方式
一、传统线程通信synchronized + wait + notify Object类的wait()、notify() 、notifyAll()三个方法必须由同步监视器对象来调用,分两种情况: a)同步方法,该类默认实例(this)就是同步监视器,可以在同步方法中可以直接调用 b)同步代码块,同步监视器是synchronized后括号里的对象,所以必须使用此对象调用这三个方法 二、使用Condi...转载 2019-09-10 15:31:39 · 434 阅读 · 0 评论 -
线程和进程
1.1.什么是线程和进程? 进程: 进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。 在 Java 中,当我们启动 main 函数时其实就是启动了一个 JVM 的进程,而 main 函数所在的线程就是这个进程中的一个线程,也称主线程 线程: 线程与进程相似,但线程是一个比进程更小的执行单位。一个进程...原创 2019-06-29 14:45:35 · 1321 阅读 · 0 评论