随笔分类 -  Java

摘要:本文介绍java中的线程池类ThreadPoolExecutor。 我们可以利用ThreadPoolExecutor创建线程池,这个类中有多个构造方法。 ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveT 阅读全文
posted @ 2024-08-23 10:56 Aeons 阅读(2) 评论(0) 推荐(0) 编辑
摘要:使用线程池可以减少创建和销毁线程的次数,可以调整线程池中工作线程的数量,防止内存过多消耗。在阿里巴巴Java开发手册中,也强调了线程资源必须通过线程池提供,不允许在应用中自行显式创建线程,应通过ThreadPoolExecutor的方式来创建线程池,规避资源耗尽的风险。在学习Java的线程池之前,我 阅读全文
posted @ 2024-08-23 10:53 Aeons 阅读(14) 评论(0) 推荐(0) 编辑
摘要:本文介绍并发编程的三大性质:原子性,可见性,有序性以及volatile关键字。 1. 原子性 原子性指一个操作或者多个操作,要么全部执行要么全部不执行。在介绍synchronized关键字的时候,就有介绍过,在执行 i++ 的时候,实际上执行的是三个步骤:读取 i 的值,i+1,将结果写入。所以这个 阅读全文
posted @ 2024-08-23 10:52 Aeons 阅读(8) 评论(0) 推荐(0) 编辑
摘要:本文介绍ReentrantLock。 ReentrantLock 翻译为可重入锁,是 java.util.concurrent.locks 包中的一个类,可以通过代码调用lock() 和 unlock() 方法来进行加锁解锁。因此一般使用的时候要用到try,finally,在finally中进行锁的 阅读全文
posted @ 2024-08-23 10:52 Aeons 阅读(10) 评论(0) 推荐(0) 编辑
摘要:介绍死锁。 1. 死锁的概念 简单的说,死锁是指多个线程在竞争资源时,造成了互相等待阻塞的现象。例1: public class Test1 { private static final Logger log = LoggerFactory.getLogger(Test1.class); publi 阅读全文
posted @ 2024-08-23 10:51 Aeons 阅读(4) 评论(0) 推荐(0) 编辑
摘要:1. wait 和 notify wait() 方法是Object类中的方法,他的作用是让当前线程进入等待状态,而使用notify() 方法可以唤醒。 wait(long): void ,参数是毫秒,表示等待毫秒数,直到时间结束或被唤醒; wait(long, int): void ,第一个参数是毫 阅读全文
posted @ 2024-08-23 10:49 Aeons 阅读(36) 评论(0) 推荐(0) 编辑
摘要:介绍synchronized关键字 1. 概念 同步代码块(Synchronized Block)是Java提供的一种内置锁机制。用关键字synchronized来修饰的方法,就是同步代码块。线程在进入同步代码块的时候会自动获取锁,退出代码块时会自动释放锁。内置锁是互斥锁,最多只有一个线程能持有,被 阅读全文
posted @ 2024-08-23 10:42 Aeons 阅读(14) 评论(0) 推荐(0) 编辑
摘要:java线程状态 1. 操作系统进程的五种状态 网上找了一张图: 2. java线程的六种状态 Thread类中getState()方法可以获取线程的状态,返回值是Thread类中的enum类型,取值有NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMIN 阅读全文
posted @ 2024-08-23 10:41 Aeons 阅读(5) 评论(0) 推荐(0) 编辑
摘要:介绍线程创建的两种基本的方法:继承Thread类和实现Runnable接口 1. 继承Thread类 自定义类继承Thread类,重写 run() 方法 import org.slf4j.LoggerFactory; /** * @author: yt * @date: 2021/4/12 22:0 阅读全文
posted @ 2024-08-23 10:39 Aeons 阅读(4) 评论(0) 推荐(0) 编辑
摘要:介绍一下线程常用的一些方法 1. run() 和 start() start() 方法让线程进入就绪状态 run() 方法 是Runnable 中的一个抽象方法,线程启动时就会调用run() 方法 (1) 如果直接调用run()方法,是不会启动新线程的 public class Test1 { pr 阅读全文
posted @ 2024-08-23 10:39 Aeons 阅读(2) 评论(0) 推荐(0) 编辑
摘要:代码地址: https://gitee.com/Aes_yt/middleware-demo/tree/master/rabbitmq 安装RabbitMq 1. docker拉取镜像 docker pull rabbitmq:3.9.29-management 2. 创建rabbitmq容器 do 阅读全文
posted @ 2023-10-14 10:18 Aeons 阅读(67) 评论(0) 推荐(0) 编辑
摘要:# Spring Cloud Demo 本文介绍Spring Cloud 常用的组件的demo代码。gitee代码:https://gitee.com/Aes_yt/spring-cloud-demo 包括Spring Cloud Eureka,Spring Cloud Feign,Spring C 阅读全文
posted @ 2023-07-29 23:23 Aeons 阅读(41) 评论(0) 推荐(0) 编辑
摘要:Springboot 多实例负载均衡部署 一、测试代码: 控制层测试代码: import java.net.Inet4Address; import java.net.InetAddress; import java.net.UnknownHostException; @Controller @Re 阅读全文
posted @ 2023-04-22 18:16 Aeons 阅读(561) 评论(0) 推荐(0) 编辑
摘要:经常需要在对象集合中,将某个对象的一个或多个属性值抽出来扔到一个集合中。代码如下: 一个属性值: Set<Integer> set = new HashSet<>(); for (User user : users) { set.add(user.getId()); } 多个属性值: List<Ma 阅读全文
posted @ 2020-04-08 14:58 Aeons 阅读(956) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示