Java系列总结

看完北大陈向群教授的《操作系统原理》后,决定重新去深入学一遍Java,研究其底层的核心原理。JVM的本质也是一个操作系统,负责管理计算机的软硬件思维,所以带着操作系统的思维去理解JVM我觉得会有更深的体会。

---------------------------------------------------------------------------------------------------------------------------------

一. 操作系统是什么?JVM是什么?跨平台是什么?

操作系统是计算机系统中的一个系统软件,负责组织和管理计算机的软硬件资源,是资源的管理者。主要功能有进程线程管理,存储管理,文件管理,I/O设备管理和用户接口。

硬件资源:CPU,存储器,设备(I/O设备,时钟,网卡等)

软件资源:磁盘上的文件,各类管理信息等

JVM也是一个计算机系统软件,是基于物理机所安装的操作系统上又虚拟出来的一个子操作系统,是资源的管理者,不同平台有不同的版本。JVM负责将.class字节码文件解释成特定平台下的机器码,然后运行。在不同平台下安装对应的JVM,就可以运行字节码文件,因此,运行Java程序必须要有JVM的支持。不同平台下编译生成的字节码是一样的,但由JVM解释生成的机器码是不一样的。所以说,跨平台的是Java程序,而不是JVM。

跨平台:不依赖于操作系统,也不依赖于硬件环境。泛指程序语言软件或硬件设备可以在多种作业系统或不同硬件架构的电脑上运行。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。

二. 并发环境是什么?并发程序是什么?

并发环境:一段时间间隔内,但处理器上有两个或两个以上的程序同时处于开始运行但尚未结束的状态,并且次序不是事先确定的

并发程序:在并发环境中执行的程序。

三. 进程是什么?线程是什么?

进程:具有独立功能的程序关于某个数据集合上一次运行活动,是系统进行资源分配和调度的独立单位。

——是程序的一次执行过程

——是正在运行程序的抽象

——系统资源以进程为单位分配,每个进程具有独立的地址空间

——操作系统将CPU调度给需要的进程

当我们启动一个Java程序时,JVM会为这个程序创建一个进程,并将该程序的可执行文件映射到该进程结构,表示由该进程执行该程序。

扩展:进程与程序的区别

1.程序是静态的,进程是动态的。

2.进程是有生命周期的,有诞生有消亡;而程序是相对长久的。

3.一个程序可以对应多个进程

4.进程具有创建其他进程的功能

线程:进程中的一个运行实体,是CPU调度的最小单位,是轻量级的进程

扩展:为什么要在进程中派生出线程?

1.应用的需要

   (1)典型的应用:Web服务器

   (2)工作方式

           -从客户端接收网页请求(http协议)

           -从磁盘上检索相关网页,读入内存

           -将网页返回给对应的客户端

   (3)如何提高服务器工作效率?

            网页缓存(Web Page Cache)

         

2.开销的考虑


3.性能的考虑

   多个线程,有的计算,有的处理I/O......


重点推荐阮一峰的博文《进程与线程的一个简单解释》,绝对通俗易懂

http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/wydyd110/article/details/79970266
个人分类: Programming Language
上一篇CDN学习笔记
下一篇Docker学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭