logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

深入 OpenJDK 17 源码:Java Native 方法的注册、绑定与调用全流程

Java 代码调用→start0()(native)。解释器/JIT发现Method的还未设置,调用。Wrapper 生成计算 C 调用约定的参数位置。移动参数(handlize 对象)。建立栈帧、保存寄存器。设置、切换线程状态。调用(即返回后处理安全点、恢复状态、处理结果。在jvm.cpp中实现,最终调用操作系统的线程创建函数(如控制权回到 wrapper,然后返回到 Java 代码。JNI 动

#java#python#开发语言
从 Thread.setName 到内核:Java 线程命名的完整穿越之旅

从到内核,这趟旅程跨越了 Java 虚拟机、C 运行时库和操作系统内核。每一层都有各自的设计哲学:Java 层注重安全与易用性,JVM 层做了严格的权限控制,glibc 层提供了兼容不同场景的分支实现,而内核则通过统一的comm字段和 proc 接口,简洁地完成了最终的存储。理解这条完整的调用链,不仅能帮助我们写出更高效的多线程代码,还能在遇到线程名相关问题(如jstack与ps看到的名称不一致)

#java#python#开发语言
从网卡到Java NIO:Linux epoll与网络收包完整源码解析

在Java高并发网络编程中,Selector是NIO的核心组件,而在Linux平台上,其背后的实现是——一个基于Linux epoll事件通知机制的高性能I/O多路复用器。本文将从用户提供的源码出发,深入剖析从网卡数据包到达、经过内核协议栈处理、到epoll事件通知,最终被Java NIO层捕获的完整链路。我们将沿着数据流的路径,逐层解读关键源码实现。物理层:网卡接收数据,DMA到内存,触发中断。

#java#nio#linux
docker拉取安装openGauss高斯数据库

##拉取opengauss高斯数据库镜像docker pull enmotech/opengauss:3.0.0##docker运行opengauss高斯数据库docker run --name opengauss --privileged=true -p 17700:5432 -d -e GS_PASSWORD=Enmo@123 enmotech/opengauss:3.0.0##进入openg

文章图片
#docker#容器#运维
从 Thread.setName 到内核:Java 线程命名的完整穿越之旅

从到内核,这趟旅程跨越了 Java 虚拟机、C 运行时库和操作系统内核。每一层都有各自的设计哲学:Java 层注重安全与易用性,JVM 层做了严格的权限控制,glibc 层提供了兼容不同场景的分支实现,而内核则通过统一的comm字段和 proc 接口,简洁地完成了最终的存储。理解这条完整的调用链,不仅能帮助我们写出更高效的多线程代码,还能在遇到线程名相关问题(如jstack与ps看到的名称不一致)

#java#python#开发语言
深入 OpenJDK 17 源码:Java Native 方法的注册、绑定与调用全流程

Java 代码调用→start0()(native)。解释器/JIT发现Method的还未设置,调用。Wrapper 生成计算 C 调用约定的参数位置。移动参数(handlize 对象)。建立栈帧、保存寄存器。设置、切换线程状态。调用(即返回后处理安全点、恢复状态、处理结果。在jvm.cpp中实现,最终调用操作系统的线程创建函数(如控制权回到 wrapper,然后返回到 Java 代码。JNI 动

#java#python#开发语言
深入剖析 OpenJDK 17 解释器中的安全点(Safepoint)进入与退出机制

入口点准备为每个 TosState 生成安全点入口,调用。状态转换 RAIIJRT_ENTRY宏中的负责 Java ↔ VM 状态的切换,并在转换期间插入安全点检查。统一轮询机制通过线程本地 polling word 和全局标志实现轻量级的安全点检测。阻塞等待利用高效挂起和唤醒线程。解释器轮询点中的testb指令在每个字节码调度时检查安全点请求,并切换到安全点分发表。

#安全#开发语言#java
深入 Linux 内核同步机制:从 futex 到 spinlock 的完整旅程

futex 是 Linux 提供的一种快速用户态互斥体机制。在无竞争的情况下,所有操作都在用户态完成,不需要陷入内核;只有在发生竞争时,才通过系统调用进入内核进行排队和唤醒。这种设计极大地提升了性能,因为绝大多数锁操作都是无竞争的。futex_wait和futex_wake是两个最核心的系统调用。本文从用户态的一个futex_wait调用出发,沿着代码执行路径深入内核,最终到达 CPU 的原子指令

#linux#windows#microsoft
Linux内核启动(init)与程序执行(execve)深度解析:从kernel_init到load_elf_binary

当我们按下电源键,BIOS进行自检,引导加载程序(GRUB)将内核映像载入内存,然后内核开始执行。从到rest_init,内核完成了大量的初始化工作:初始化中断、内存管理、调度器、文件系统……然而,直到用户空间的第一个进程 ——init进程被启动之前,系统仍然处于“内核态独占”的状态。用户空间的第一个进程的诞生,标志着操作系统真正走向可用。那么,内核是如何从内核线程转变为执行用户空间/sbin/i

#linux#运维#服务器
    共 20 条
  • 1
  • 2
  • 请选择