首页
热门分类
IT工具箱
GitHub
无敌收藏
关于
AI聊天
IT充电站
看过故人终场戏,淡抹最适宜
累计撰写
48
篇文章
累计创建
13
个标签
累计收到
2
条评论
栏目
首页
热门分类
IT工具箱
GitHub
无敌收藏
关于
AI聊天
目 录
CONTENT
以下是
Java基础
相关的文章
无锁、偏向锁、轻量级锁、重量级锁
在Java中,锁是多线程编程中用来控制对共享资源访问的一种机制,以避免数据竞争和保证线程安全。Java虚拟机(JVM)提供了多种锁机制来满足不同的性能需求和场景。以下是对无锁、偏向锁、轻量级锁、重量级锁以及锁升级过程和触发条件的详细解释: 1. 无锁 (Lock-Free) - 无锁编程是一种避免使
2024-06-13
79
0
0
Java基础
synchronized实现原理和用法
原理 synchronized一般用于加锁,可以针对方法和代码块进行加锁。 流程如下: 当某个线程要访问某个方法或代码块时 检查ACC_SYNCHRONIZED标志,如果有设置,那么尝试获取监视器monitor锁 获取锁成功,开始执行方法,执行完成后释放监视器monitor锁 获取锁成功,但内部发生
2024-06-13
14
0
0
Java基础
内存模型的理解(JMM)
ava内存模型(Java Memory Model, JMM)是Java虚拟机(JVM)的一个核心概念,它规定了一个Java程序在多线程环境中,各个线程之间如何通过内存进行通信、共享变量的可见性、以及如何同步等。JMM 定义了以下几个关键方面: 1. 主内存(Main Memory) Java内存模
2024-05-24
20
0
1
Java基础
死锁的定义和解决思路
定义 多个线程或进程执行过程中,由于资源的竞争造成了阻塞的现象,且无外力干扰,将无限处于互相等待对方释放资源的状态被称为死锁 解决思路 设置多个线程执行的优先级,错开抢占资源的顺序 修改线程的执行顺序,破坏循环等待
2024-05-24
9
0
0
Java基础
线程同步的4种常用方式
synchronized public synchronized void method(){} ReentrantLock private final ReentrantLock lock = new ReentrantLock(); public void method(){ lock.lo
2024-05-24
14
0
0
Java基础
ThreadLocal的结构和用法
结构 ThreadLocal 类提供了一个简单的接口,主要有以下几个方法: void set(T value): 设置当前线程的局部变量的值。 T get(): 返回当前线程所对应的局部变量的值。 T initialValue(): 如果线程还没有局部变量的副本,则像下面这样提供一个初始化值。 vo
2024-05-24
29
0
0
Java基础
线程池的工作流程和原理
流程 线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。 线程池判断工作队列是否已经满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程。 线程池判断线程池的线程是否
2024-05-24
29
0
0
Java基础
线程池的概念和结构
概念 线程池是一种线程使用的管理策略,它创建一定数量的线程,并在需要时重复使用这些线程,而不是每次都创建和销毁线程。线程池可以有效地减少资源消耗,提高响应速度,并允许更好的线程管理。 继承关系 结构分析
2024-05-23
6
0
0
Java基础
创建线程池的几种方式
newCachedThreadPool:缓存线程池 public static ExecutorService newCachedThreadPool() { return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
2024-05-23
1
0
0
Java基础
线程start/run/wait/sleep/notify/notifyAll的区别
1. start() 作用:启动一个线程。当调用一个线程的 start() 方法时,线程会被创建并开始执行其 run() 方法。 使用场景:当你需要启动一个新的线程时使用。 2. run() 作用:run() 方法是 Runnable 接口的一部分,它定义了线程执行的具体任务。在 Thread 类中
2024-05-23
7
0
0
Java基础
1
2
3
4