搜索文章
首页
智能助手
归档
瞬间
首页
智能助手
归档
瞬间
青云
记录、分享
全部
杂文 (3)
Java (344)
Python (3)
数据库 (76)
Linux (14)
Docker (3)
数据结构 (39)
大数据 (22)
人工智能 (19)
MQTT (3)
线程池中核心线程数量大小怎么设置
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
Java线程之间是如何通信的
当我们处理线程通信时,通常有两种主要的实现方式,每种方式都有其独特的机制和优势: 共享内存: 这是一种常见的方式,多个线程可以访问同一个共享内存区域,通过读取和写入共享内存中的数据来进行通信和同步。在Java中,我们可以使用共享变量或共享数据结构来实现共享内存通信。例如,可以使用 volatile
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
说说进程和线程的区别
当一个程序在计算机上运行时,通常会创建至少一个进程。进程被认为是操作系统分配资源的最小单元,每个进程都拥有独立的内存空间和系统资源,包括文件句柄和网络连接等。操作系统通常使用进程来表示独立的应用程序实例。比如,你的计算机上可能同时运行着浏览器、文本编辑器、音乐播放器等多个进程。 每个进程至少包含一个
作者:zhanxuewei
发布时间:2024-04-22
分类:
Java
标签:
#
java
共 517 篇文章
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
页
# ollama
(1)
# spring ai alibaba
(3)
# selenuim
(1)
# WinSW
(1)
# Drools
(1)
# MQTT
(3)
# 消息中间件
(33)
# langchain4j
(10)
# spring-AI
(0)
# Jasypt
(1)
# superset
(1)
# deepseek
(5)
# 面试题
(20)
# Python爬虫
(1)
# leetcode
(11)
# epoll
(1)
# jenkins
(2)
# rocketmq
(15)
# Python基础
(1)
# ShardingSphere
(0)
# 分库分表
(0)
# GPT
(1)
# 架构
(6)
# minio
(1)
# k8s
(0)
# dubbo
(8)
# nginx
(0)
# elasticsearch
(12)
# springcloud
(24)
# 数据结构和算法
(28)
# 设计模式
(7)
# jvm
(24)
# spring
(28)
# mybatis
(22)
# redis
(18)
# mysql
(60)
# springboot
(11)
# seata
(1)
# linux
(4)
# itext
(1)
# datax
(1)
# flume
(2)
# kafka
(5)
# hbase
(2)
# zookeeper
(17)
# spark
(5)
# hive
(4)
# docker
(3)
# hadoop
(2)
# 杂文
(3)
# java
(235)
友情链接
青云博客
网笙久久的博客