勤劳的小蚂蚁 后端开发 资源共享 互联网大厂高频重点面试题(第2季)思维导图笔记完整加强版xmind分享 简介 总结分析了2019年大厂互联网公司常见常考的技术点,让大家深刻掌握、扎实吃透当前的主流Java高级技术。 本期内容包括 JUC多线程并发、JVM和GC等目前大厂笔试中会考、面试中会问、工作中会用的高频难点 …
勤劳的小蚂蚁 后端开发 一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等各种锁 —- 不看后悔系列 重量级锁?自旋锁?自适应自旋锁?轻量级锁?偏向锁?悲观锁?乐观锁?执行一个方法咋这么辛苦,到处都是锁。 今天这篇文章,给大家普及下这些锁究竟是啥,他们的由来,他们之间有啥关系,有啥区别。 …
Geeker 后端开发 大厂面试官最喜欢问的6道Java多线程面试题详细解析 创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可以用来创建线程: 继承Thread类 实现Runnable接口 应用程序可以使用Executor框架来创建线程池 实现Runnable接口这种方式更受欢迎,因为这不 …
北京码帝 技术杂谈 终于搞懂了sleep/wait/notify/notifyAll sleep/wait/notify/notifyAll分别有什么作用?它们的区别是什么?wait时为什么要放在循环里而不能直接用if? 简介 首先对几个相关的方法做个简单解释,Object中有几个用于线程同步的方法:wait、notify、 …
多啦H梦 技术杂谈 面试必备,Java线程状态之细节回顾 Java线程有6种状态 在某个给定时间点上,一个线程只能处于这6种状态中的一种 线程状态的枚举:Thread.State 这6种状态被明确地定义在Thread类的一个内部枚举类Thread.State中: 它们是: NEW (新建) 一个 …
勤劳的小蚂蚁 技术杂谈 指令重排(Happens-Before法则) 1.什么是指令重排 程序指令的执行顺序有可能和代码的顺序不一致,这个过程就称之为指令重排。 2.指令重排的作用 JVM能根据处理器的特性,充分利用多级缓存,多核等进行适当的指令重排序,使程序在保 …
勤劳的小蚂蚁 技术杂谈 Java 多线程知识小抄集 ( 二 ) 27. ConcurrentHashMap ConcurrentHashMap是线程安全的HashMap,内部采用分段锁来实现,默认初始容量为16,装载因子为0.75f,分段16,每个段的HashEntry<K,V>[]大小为2。键值都不能为null。每次扩 …
勤劳的小蚂蚁 技术杂谈 并发队列 : 无界非阻塞队列 ConcurrentLinkedQueue 原理探究 一、 前言 常用的并发队列有阻塞队列和非阻塞队列,前者使用锁实现,后者则使用CAS非阻塞算法实现,使用非阻塞队列一般性能比较好,下面就看看常用的非阻塞ConcurrentLinkedQueue是如何使用CAS实现的。 …
勤劳的小蚂蚁 技术杂谈 并发队列:无界阻塞队列 LinkedBlockingQueue 原理探究 一、前言 本文介绍下使用独占锁实现的阻塞队列LinkedBlockingQueue的实现。 二、 LinkedBlockingQueue类图结构 如图LinkedBlockingQueue中也有两个Node分别用来存放首尾节点,并且里面有个初始值为0的原 …
勤劳的小蚂蚁 技术杂谈 Java 并发实践 — ConcurrentHashMap 与 CAS 最近在做接口限流时涉及到了一个有意思问题,牵扯出了关于concurrentHashMap的一些用法,以及CAS的一些概念。限流算法很多,我主要就以最简单的计数器法来做引。先抽象化一下需求:统计每个接口访问的次数 …
勤劳的小蚂蚁 技术杂谈 并发一枝花之 ConcurrentLinkedQueue 首先声明,本文是伪源码分析。主要是基于状态机自己实现一个简化的并发队列,有助于读者掌握并发程序设计的核心——状态机;最后对源码实现略有提及。 ConcurrentLinkedQueue不支持阻塞,没有BlockingQueue …
勤劳的小蚂蚁 技术杂谈 Java 多线程知识小抄集 ( 三 ) 本文主要整理博主遇到的Java多线程的相关知识点,适合速记,故命名为“小抄集”。本文没有特别重点,每一项针对一个多线程知识做一个概要性总结,也有一些会带一点例子,习题方便理解和记忆。 51. SimpleDa …