1、先给不小心搜到这篇半成品的兄弟结论: @Async注解的方法上,再标注@Transactional注解(不需要特意关注顺序),事务依旧是生效的(但是这个事务是不能跨线程的...
1、先给不小心搜到这篇半成品的兄弟结论: @Async注解的方法上,再标注@Transactional注解(不需要特意关注顺序),事务依旧是生效的(但是这个事务是不能跨线程的...
面向对象编程(OOP) Java是一个支持并发、基于类和面向对象的计算机编程语言。下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改。 代码复用。 增强代码的...
AQS--AbstractQueuedSynchronizer-抽象的队列同步器 前置知识 公平锁与非公平锁 可重入锁 LockSupport 自旋锁 链表 模板设计模式 1...
LockSupport 为什么要学习LockSupport java--JVMJUC--AQS(前置知识:可重入锁,LockSupport) LockSupport是什么? ...
Excalidraw——在线手绘风格绘图板Excalidraw | Hand-drawn look & feel • Collaborative • Secure[https...
1、你平时工作中用过的JVM常用基本配置参数有哪些? -Xms:初始堆空间(默认是64分之一) -Xmx:堆空间最大值(默认是4分之一)image.png 除了可以使用命令行...
1、你说你做过JVM调优和参数配置,如何盘点查看JVM系统默认值? -Xms:初始堆空间 -Xmx:堆空间最大值 -Xss:初始栈空间 ...... 调整时需要from和to...
JVM+GC解析(题目1) 1、JVM垃圾回收的时候如何确定垃圾?是否知道什么是GC Roots? GC Root如何确定?那些对象可以作为GC Root? 1.1、什么是垃...
前提准备 JVM GC垃圾回收 JVM虚拟机监控调优和故障处理 Tomcat和微服务优化 1、前提复习 1.1、JVM内存结构 1.1.1、 图中灰色部分为 ,几乎不存在垃圾...
知识点回顾
什么是死锁 死锁是指两个或以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象。若无外力干涉将无法推进,如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能...
合理配置线程池你是如何考虑的? 线程池能够同时执行的最大线程数:maximumPoolSize CPU密集型 IO密集型 首先要了解使用的硬件,获取服务器的核心数 CPU密集...
1、拒绝策略 1.1、拒绝策略是什么? 用于等待的阻塞队列满了,当前运行的线程数又已经达到了maximumPoolSize,无法为新的任务服务,这个时候使用拒绝策略做出反馈。...
3、线程池的几个重要参数介绍 底层实现源码,都写了五大参数,但一共有七大参数 3.1、七大参数 3.1.1、corePoolSize:线程池中的常驻核心线程数。 创建了线程池...
1、为什么使用线程池,线程池的优势是什么?(所有池化技术) 线程池做的工作主要是控制运行的线程的数量,处理过程中将任务放入队列,然后再线程创建之后启动这些任务,如果线程数量超...
2、为什么我们需要Callable接口 可以将任务分开多线程去做,并通过返回值的方式汇总到主线程,输出结果。 3、注意点 3.1、futureTask.get(): 如无必须...
Java多线程中,四种获取线程的方式: 继承Thread类 实现Runnable接口 实现Callable接口 使用线程池 1.1、Callable接口和Runnable接口...
1、知识点回顾 volatile CAS atomicInteger BlockingQueue 线程交互 原子引用 2、生产者消费者模式(阻塞队列版本) Console: ...