网站首页 > java教程 正文
1、概览
进程
①进程第一种理解
进程(Process)是计算机中的程序在相关数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式(进程控制块PCB)的描述,进程是程序的实体。
②进程第二种理解
进程实体:数据块 + 代码块 + 进程控制块(操作系统层面的程序实体)
进程:进程实体的执行过程称为进程,即程序代码块在数据集合上的一次执行过程。进程是操作系统资源分配和调度的基本单元。早期面向进程设计的计算机结构,进程是程序的基本执行单元。在当代面向线程设计的计算机结构中,线程是计算机执行的基本单元。
③进程特征
动态性:进程的实质是程序在多道程序系统中的一次执行过程,进程是动态产生,动态消亡的。
并发性:任何进程都可以同其他进程一起并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位;
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可预知的速度向前推进
结构特征:进程由程序、数据和进程控制块三部分组成。
多个不同的进程可以包含相同的程序:一个程序在不同的数据集里就构成不同的进程,能得到不同的结果;但是执行过程中,程序不能发生改变。
④进程切换
进行进程切换就是从正在运行的进程中收回处理器,然后再使待运行进程来占用处理器。进程收回处理器,实质上就是把进程存放在处理器的寄存器中的中间数据存放在进程的私有堆栈中,从而把处理器的寄存器腾出来让其他进程使用。
让进程来占用处理器,实质上是把某个进程存放在私有堆栈中寄存器的数据(前一次本进程被终止时的中间数据)再恢复到处理器的寄存器中去,并把待运行进程的断点送入处理器的程序指针PC,于是待运行进程就开始被处理器运行了,也就是这个进程已经占有处理器的使用权了。
⑤进程状态
创建状态:操作系统为进程分配内存,创建进程控制块
就绪状态:进程已经获得了除操作系统之外其他的所有资源。
运行状态:进程获得操作系统之后就可以运行
阻塞状态:由于进程等待某种条件(如I/O操作或进程同步),在条件满足之前无法继续执行。该事件发生前即使把处理器资源分配给该进程,也无法运行。
终止状态:进程正在从CPU中撤销,操作系统回收内存资源。
⑥进程状态转换
⑦进程控制块介绍
⑧进程通信
线程
①线程的理解
在引入线程之前,进程是资源分配,操作系统调度和执行的基本单位。引入进程之后进程是线程的容器,线程是操作系统调度和执行的基本单位。同进程中的所有线程共享进程中的所有资源。
②线程状态
管程
管程就是一种特殊的数据结构,由编译器编译完成,一种能够实现同步互斥的数据结构。管程是一种机制,能够实现同步互斥的机制。在Java中sychronized就是管程的一种实现机制。
猜你喜欢
- 2024-10-13 GitHub热点推荐!85W字并发编程图册(全彩版),竟是出自阿里
- 2024-10-13 「不得不看」Java并发编程一(java并发编程之美)
- 2024-10-13 深入理解java并发编程、并发编程相关概念基础篇
- 2024-10-13 Java 高并发编程详解:多线程与架构设计首稿写作完成
- 2024-10-13 Java面试专题——并发编程(juc并发编程面试题)
- 2024-10-13 Java编程——如何实现高效的并发控制
- 2024-10-13 Java线程与并发编程实践:深入理解volatile和final变量
- 2024-10-13 简单理解JAVA并发编程及高并发(java并发编程实战和并发编程的艺术)
- 2024-10-13 高并发编程系列:全面剖析Java并发编程之AQS的核心实现
- 2024-10-13 Java 多线程并发编程(关于java多线程并发控制机制)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)