进程通信|操作系统进程进程间通信基本概念通信方式本地进程通信管道匿名管道命名管道共享内存分布式进程通信SocketRPCMQStream信号
Read more
线程-常用方法|Java 并发编程线程基础基础方法暂停线程Sleep 方法
作用:[让正在运行的线程进入睡眠状态,虚拟机/处理器在此期间不会调度该线程]{.red}
使用:
[JDK 1.0 默认提供睡眠方法:默认时间单位是毫秒(ms)]{.blue}
核心方法:Thread.sleep()
代码演示
@Slf4j(topic = "c.ThreadSleepAndYield")public class T ...
Read more
线程-基础知识|Java 并发编程线程基础基础知识OS 线程基础知识:::info
① 所有语言层面的线程知识都是基于操作系统,所以本篇笔记会优先[简单讲述]{.red}操作系统中线程
② 了解操作系统中的线程之后才会开始介绍 Java 线程、C# 协程中的相关知识
注:最好对操作系统中的线程基础知识有所了解
:::
什么是线程?
线程定义:
OS 定义:
线程是拥有 [独立的程序计数器、寄存器、栈空间]{.red}
并且共享进程提供的 ...
Read more
进程死锁|操作系统进程进程死锁死锁概述
定义:同组中的 ==每个进程== 正在等待某个 ==只能够由同组其他进程== 执行的事件发生,称 ==操作系统== 处于死锁状态
死锁指的是操作系统的状态而不是某个进程的状态
==必要条件==
条件内容:
互斥(mutual exclusion):==至少存在一个== 资源实例 ==不能共享==
持有并等待(hold and wait):拥有进程的资源申请新的资源时 = ...
Read more
进程同步|操作系统进程进程同步前提:基于单核处理器的前提讨论进程的同步
同步概述
引入:
问题:
进程协作时需要相互通信;进程通信方式通常有两种:==消息传递 + 共享内存==
共享内存方式涉及多个进程对公共区域的操作
-> 多个进程可能 ==同时== 对公共区域进行操作,造成公共区域的 ==数据不一致性== (==并行==)
解释:进程 A 正在对公共区域进行写操作,进程 B 同时对公 ...
Read more
类加载机制|Java 虚拟机类加载机制
类加载机制主要内容可以通过以下几个问题来解释:
什么是类加载机制?为什么需要类加载机制?
类加载机制中涉及到哪些类加载器?这些类加载器的特点是什么?
类加载的主要流程是什么?
什么是双亲委派机制?为什么之后又要破坏双亲委派机制?
初识类加载什么是类加载机制?为什么需要类加载机制?
严格来说,类加载机制指的就是将描述数据的字节码文件加载到内存中,然后对其进行验证,准备,解析以及初始 ...
Read more
概述|Java 虚拟机运行时数据区概述
什么是 Java 虚拟机运行时数据区?
第一个问题:什么是 虚拟机?
定义:[运行在操作系统上的具有物理机拥有的全部硬件功能的软件]{.red}
核心:[虚拟机采用软件对真实计算机进行模拟]{.red}
:::info
注:既然是对真实计算机的模拟,那么虚拟机中的很多组件显然会对应真实计算机中的硬件
:::
第二个问题:什么是 Java 虚拟机?
定义:简单来说就 ...
Read more
程序计数寄存器|Java 虚拟机运行时数据区程序计数寄存器
什么是程序计数寄存器?
名称:程序计数寄存器(Programmer Counter Register)
别名:PC 寄存器、程序计数器、程序钩子
定义:JVM 中的一块较小的 [内存区域]{.blue}
区别:真实计算机中的程序计数器是 [物理硬件寄存器]{.blue} 制作完成的
作用:[保存当前线程正在执行的字节码指令的地址]{.red}
字节码指令:源代码被 ...
Read more
执行引擎-概述|Java 虚拟机执行引擎概述
什么是执行引擎?
定义:[采用 软件模拟 的物理机处理器就是执行引擎]{.red}
物理机中的计算核心是处理器(CPU)
虚拟机作为对物理机的模拟,执行引擎显然就是对计算核心的模拟,也就是处理器
作用:[将(前端)编译器生成的字节码 翻译/编译 成本地机器指令]{.red}
执行引擎每次都取出一条字节码指令并执行
但是无论执行任何指令,最终都要依靠物理机,所以需要向物理机解释
执 ...
Read more