首页
学习
活动
专区
工具
TVP
发布

须臾之余

随缘
专栏成员
90
文章
98778
阅读量
22
订阅数
Java中的线程池
java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理使用线程池能够带来三个好处。
须臾之余
2022-05-10
4480
jetty启动
在idea中配置jetty 第一步:在pom.xml中配置jetty插件 <plugins> <!-- jetty插件 --> <plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>maven-jetty-plugin</artifactId> <version>6.1.26</version>
须臾之余
2022-01-20
1K0
多线程进阶——JUC并发编程之Synchronized底层实现概论🔥
Java中提供了两种实现同步的基础语义: synchronized 方法和 synchronized 块 ,先来个案例进行分析!
须臾之余
2021-12-28
2560
多线程进阶——JUC并发编程之Executors框架设计思想一探究竟🔥
Executors 框架是整个JUC 包中类/接口关系中最为复杂的框架,真正理解Executors框架的前提是理清楚各个模块之间的关系,高屋建瓴,从整体到局部才能透彻理解各个模块的功能和背后设计的思路!
须臾之余
2021-12-28
2730
多线程进阶——JUC并发编程之抽象同步队列AQS框架设计理念一探究竟🔥
现在看来我们还有点懵逼,这个框架具体是怎么设计的?下面我们翻看源码注释一探究竟!其中AQS里面维护了一个Node节点构造的CLH队列(FIFO)先进先出队列。
须臾之余
2021-12-28
3490
深入理解java虚拟机思维导图
须臾之余
2021-12-28
3210
多线程进阶——JUC并发编程之Semaphore源码一探究竟?
上面两个构造函数,默认构造函数是非公平锁来实现,通过设置构造参数 fail 来选用公平策略还是非公平策略。
须臾之余
2021-07-27
3340
多线程进阶——JUC并发编程之CyclicBarrier源码一探究竟?
在上文中我们分析完了 CountDownLatch源码,可以理解为减法计数器,是基于AQS的共享模式使用,而CyclicBarrier相比于CountDownLatch 来说,要简单很多,它类似于加法计数器,在源码中使用 ReentrantLock 和 Condition 的组合来使用。
须臾之余
2021-07-27
3030
多线程进阶——JUC并发编程之CountDownLatch源码一探究竟?
JDK的并发包中提供了几个非常有用的并发工具类。 CountDownLatch、 CyclicBarrier和 Semaphore工具类提供了一种并发流程控制的手段。本文将介绍CountDownLatch(闭锁)的实现原理。在了解闭锁之前需要先了解AQS,因为CountDownLatch的实现需要依赖于AQS共享锁的实现机制。
须臾之余
2021-07-27
3470
Java并发机制底层实现原理锁的膨胀过程
锁的膨胀过程 预备知识CAS 硬件对并发的支持 在大多数处理器架构(包括IA32和Sparc)中采用的方法是实现一个比较并交换(CAS)指令,CAS包含了3个操作数——内存位置(V),预期原值(A),拟写入的新值(B),当且仅当V == A 时,CAS才会通过原子方式用新值(B)来更新(V)原有的值,无论操作成功与否,都会返回(V)值,且整个过程都是不可打断的,所以CAS是一个原子操作;主要是利用CPU的CAS指令,同时借助JNI来完成Java的非阻塞算法。 模拟CAS操作 public class
须臾之余
2020-11-24
3350
面试官问我 三色标记原理我直接蒙了
什么是三色标记? 为啥需要三色标记呢? 相比之前的标记清除算法,其GC执行期间需要把整个程序完全暂停,不能异步执行GC操作。对实时性要求比较高的系统来说,这种需要长时间挂起的标记清除算法是不可接受的,而三色标记算法就很好的解决了这个问题。 三色标记最大的好处是可以异步执行,从而可以以中断时间极少的代价或者完全没有中断操作来进行整个GC。 三色标记具体指那三色? 白色、灰色和黑色。 黑色:根对象,或者该对象与它的子对象都被扫描过。 灰色:对象本身被扫描,但是还有没扫描该对象的子对象。 白色:
须臾之余
2020-10-26
3.3K0
你所理解的Synchronized关键字对吗
关于java中的Synchronized关键字是不是自旋锁?首先从OS级别来说它肯定不是,因为它用的是互斥锁,这个可以看openjdk源码可以发现它用的是mutex互斥量来实现的。然后站在用户级别虽然
须臾之余
2020-10-26
2650
CPU占用过高排查实战 原来这么简单
1、在Linux中启动项目:java -cp ref-jvm.jar -XX:+PrintGC -Xms200M -Xmx200M ex13.FullGCProblem
须臾之余
2020-10-26
1.4K0
Java8实战——通过行为参数化传递代码 顶
1、初试牛刀:筛选绿苹果 第一个解决方案可能是下面这样的: public static List<Apple> filterGreenApples(List<Apple> inventory){ List<Apple> result=new ArrayList<>(); //仅仅筛选出绿苹果 for (Apple apple : inventory) { if ("green".equals(apple.getColor())){
须臾之余
2020-08-11
5790
虚拟机的前世今生和Java内存区域 顶
Java程序执行过程 javac编译成.class文件,然后jvm将其加载到方法区,执行引擎将会执行这些字节码,执行时会翻译成操作系统相关函数,jvm作为.class文件的翻译存在,输入字节码,调用操作系统函数。 过程如下:Java文件->编译器->字节码->jvm->机器码。 JVM、JRE、JDK的关系 JVM充当翻译的角色,把class翻译成机器识别的代码。 JRE包含jvm,还提供很多类库(也就是jar包,比如读取或者操作文件,连接网络,使用IO等)JVM标准加上实现的一大堆基础类库,组
须臾之余
2020-07-21
4060
spring源码调试准备工作 顶
最后我们需要在我们自己的项目中调试源码引入spring源码对应的依赖,并且将源码打成jar包:
须臾之余
2020-06-16
5530
设计getMin功能的栈 顶
实现一个特殊功能的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作。
须臾之余
2020-03-19
2730
MySQL调优系列——MySQL B+Tree索引和Hash索引的区别?
1、B+Tree索引 1、B+Tree首先是有序结构,为了不至于树的高度太高,影响查找效率,在叶子节点上存储的不是单个数据,提高了查找效率; 为了更好的支持范围查询,B+树在叶子节点冗余了非叶子节
须臾之余
2020-02-25
3.9K0
MySQL调优系列——如何提高MySQL的查询效率
1、对查询进行优化,避免全表扫描,首先应考虑在where及order by涉及的列上建立索引。
须臾之余
2020-02-25
3.5K0
MySQL调优系列——MySQL常用的优化技巧
性能低、执行时间太长、等待时间太长、SQL语句欠佳(连接查询)、索引失效、服务器参数设置不合理(缓冲、线程数)
须臾之余
2020-02-25
1.7K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档