作者:青云

阻塞队列的有界和无界

1.阻塞队列是一种特殊队列,它在普通队列的基础上提供了两个附加功能 当队列为空的时候,获取队列中元素的消费者线程会被阻塞,同时唤醒生产者线程; 当队列满了的时候,向队列中添加元素的生产者线程会被阻塞,同时唤醒消费者线程; 2.其中,阻塞队列中能够容纳的元素个数,通常情况下是有界的,比如我们实例化一个

青云 发布于 2024-06-26

什么是hash冲突?如何解决?

一、什么是hash冲突 要了解 Hash 冲突,那首先我们要先了解 Hash 算法和 Hash 表。 Hash 算法 就是把任意长度的输入,通过散列算法,变成固定长度的输出,这个输出结果是散列值。 Hash 表 又叫做“散列表”,它是通过 key 直接访问在内存存储位置的数据结构,在具体实现上,我们

青云 发布于 2024-06-25

双亲委派

要了解"双亲委派"机制,首先需要知道"类的加载机制" 一、类的加载机制 我们自己写的 java 源文件到最终运行,必须经过编译和类加载两个阶段: 编译的过程就是把.java 文件编译成.class 文件。 类加载的过程,就是把 class 文件装载到 JVM 内存中,装载完成以后就会得到一个 Cla

青云 发布于 2024-06-22

Centos7访问Windows共享文件

一、Windows设置共享文件夹 首先说明,Centos和windows的网络需要畅通,比如都是在同一局域网内 在Windows系统中,右键点击需要共享的文件夹->属性->共享 点击共享,然后下拉选择一个用户,点击添加,然后点击共享:

青云 发布于 2024-06-18

epoll的原理

设想一个场景: 有100万用户同时与一个进程保持着TCP连接,而每一时刻只有几十个或几百个TCP连接是活跃的(接收到TCP包),也就是说,在每一时刻,进程只需要处理这100万连接中的一小部分连接。那么,如何才能高效地处理这种场景呢?进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万

青云 发布于 2024-06-16

Jenkins安装使用

一、下载 地址:https://archives.jenkins.io/war-stable/ 下载最新的,需要jdk11或以上,需要提前安装好jdk11或以上版本,我使用的是jdk11。 说明:只是启动jenkins的时候使用的jdk11,实际项目用的还是jdk8。

青云 发布于 2024-06-15

如何分析GC日志的堆栈信息?

GC日志通常包含大量关于垃圾收集器活动的详细信息,包括GC事件的类型、持续时间、内存占用情况等。以下是一些常见的信息和术语,以帮助你理解GC日志: 1. GC类型: - Full GC:表示进行完整的垃圾收集,包括新生代和老年代。 - Young GC(年轻代GC):只清理新生代。 - Mixed

青云 发布于 2024-06-09

JVM垃圾回收器种类及使用场景

垃圾回收器在 Java 虚拟机中有多种类型,每种类型都有不同的特点和适用场景。以下是常见的垃圾回收器类型以及其使用场景: 一、串行垃圾回收器 (Serial Garbage Collector): 特点:单线程执行垃圾回收操作,暂停应用程序执行。 适用场景:适用于单核 CPU 或小型应用程序,对系统

青云 发布于 2024-06-09

JVM常用启动参数及配置依据

一、内存相关参数(核心配置) 1. 堆内存 -Xms512m # 初始堆大小(默认物理内存的1/64) -Xmx2g # 最大堆大小(默认物理内存的1/4) -Xmn1g # 新生代大小(建议为堆的1/3~1/2) -XX:NewRatio=2 # 老年代与新生代的比例(2表示老年代:新生代=2:1

青云 发布于 2024-06-09

查看GC频率的几种方式

说明:当前文章是基于在JDK8环境下 方法1:通过GC日志分析 JVM参数已包含GC日志配置: -XX:+PrintGCDetails -Xloggc:/app/gcmp/java/script/logs/coi/gc.log 查看日志文件: tail -f /app/gcmp/java/scrip

青云 发布于 2024-06-09
上一页 下一页