首页
分类
标签
友链
归档
瞬间
搜索文章
= 768 && isOpen) { isOpen = false; setTimeout(() => enableScroll(document.body), 200); }">
enableScroll(document.body), 200);" x-transition:enter="transition ease duration-300" x-transition:enter-start="opacity-0" x-transition:enter-end="opacity-100" x-transition:leave="transition ease duration-300" x-transition:leave-start="opacity-100" x-transition:leave-end="opacity-0" style=" position: fixed; top: 0; left: 0; right: 0; bottom: 0; background-color: rgba(0, 0, 0, 0.5); z-index: 1001; overscroll-behavior: none; " >
enableScroll(document.body), 200)" >
首页
分类
标签
友链
归档
瞬间
青云
记录、分享
QQ交流群
控制台
全部
🔥AI (28)
🔥杂文 (4)
Java (387)
Python (3)
数据库 (76)
Linux (14)
Docker (3)
数据结构 (39)
大数据 (22)
MQTT (3)
有三个线程T1,T2,T3,如何保证顺序执行
确保三个线程 T1、T2、T3 按照指定顺序执行有多种方式。以下是其中一些常见的方式: 使用 join() 方法: 可以在每个线程内部使用 join() 方法来等待前一个线程执行完成。具体操作是在线程 T2 的 run() 方法中调用 T1.join(),在线程 T3 的 run() 方法中调用 T
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
为什么 wait 和 notify 方法要在同步块中调用
当使用 wait() 和 notify() 方法时,需要将它们放在同步块内,这是因为: 互斥性: 多线程环境下,我们希望在同一时刻只有一个线程能够执行 wait()、notify() 或 notifyAll() 方法。使用同步块(synchronized)提供了这种互斥性,避免多线程并发修改的问题。
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
线程池中核心线程数量大小怎么设置
CPU密集型任务:比如像加解密,压缩、计算等一系列需要大量耗费 CPU 资源的任务,大部分场景下都是纯 CPU 计算。尽量使用较小的线程池,一般为CPU核心数+1。因为CPU密集型任务使得CPU使用率很高,若开过多的线程数,会造成CPU过度切换。 IO密集型任务:比如像 MySQL 数据库、文件的读
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
ThreadLocaL如何防止内存泄漏
ThreadLocal 变量的内存泄漏问题主要是由于 ThreadLocalMap 中的 Entry 没有被及时清理导致的。ThreadLocalMap 是 ThreadLocal 的底层数据结构,它用于存储每个线程独立的变量副本。 要防止 ThreadLocal 内存泄漏,可以考虑以下方法: 使用
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
说说synchronized与ReentrantLock的区别
用法不同:synchronized 可以用于修饰普通方法、静态方法以及代码块,而 ReentrantLock 仅适用于代码块。 获取锁和释放锁方式不同:Synchronized 是隐式锁,可以自动加锁和释放锁,当进入 synchronized 修饰的代码块之后会自动加锁,当离开 synchroniz
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
说说ThreadLocal原理
ThreadLocal 是 Java 中的一个类,用于实现线程封闭(Thread-local)的数据存储机制。每个线程都有自己的 ThreadLocalMap,其中 ThreadLocal 对象充当键,线程的变量副本作为对应键的值。使用 ThreadLocal 的 set() 方法将数据存储在当前线
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
死锁与活锁,死锁与饥饿的区别
死锁是指多个线程相互等待对方释放资源,导致它们都无法继续执行下去。这是一种静止状态,这种情况会导致所有线程都被永久性地阻塞,没有一个线程能够继续执行。就像交通堵塞一样,没有车辆能够前进。 活锁是指多个线程不断地改变自己的状态以回应对方,但最终无法取得进展,导致线程不断重试相同的操作,却无法成功。这是
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
如何避免死锁
死锁是多线程编程中的一种常见问题,它发生在两个或多个线程相互等待对方释放资源的情况下,导致程序无法继续执行。为了避免死锁,我们可以采用以下策略: 锁顺序: 定义一个固定的锁获取顺序,并要求所有线程都按照相同的顺序获取锁。这可以减少不同线程之间资源争夺的可能性。 超时机制:
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
什么情况线程会进入 WAITING 状态
线程进入WAITING状态有以下几种情况: 调用Object.wait()方法,该方法会使得当前线程进入等待状态,等待其他线程调用同一个对象的notify()或notifyAll()方法唤醒该线程。 调用Thread.join()方法,该方法会使得当前线程等待指定线程的结束,当指定线程结束时,当前线
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
JAVA 中用到的线程调度算法是什么
在Java中,线程调度采用的是一种抢占式调度模型。这就像在一个抢夺战中,有较高优先级的线程将首先占用CPU资源。如果线程具有相同的优先级,那么Java虚拟机会随机选择一个线程来执行,以保持公平竞争的原则。一旦一个线程获得了CPU,它将一直运行,直到自愿放弃CPU资源,或者由于某些情况(比如等待I/O
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
共 569 篇文章
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
页
# MCP
(2)
# Tool Calling
(1)
# Tool
(0)
# rag
(1)
# redis stack
(2)
# ollama
(1)
# spring ai alibaba
(12)
# selenuim
(1)
# WinSW
(1)
# Drools
(1)
# MQTT
(3)
# 消息中间件
(43)
# langchain4j
(10)
# spring-AI
(0)
# Jasypt
(1)
# superset
(1)
# deepseek
(5)
# 面试题
(0)
# Python爬虫
(1)
# leetcode
(11)
更多 +
友情链接
青云博客
网笙久久的博客
林间拾语
宏尘极客