标签:volatile

Java

Java并发编程系列-(4) 显示锁与AQS

11

尖兵 发布于 2019-12-13

4 显示锁和AQS 4.1 Lock接口 核心方法 Java在java.util.concurrent.locks包中提供了一系列的显示锁类,其中最基础的就是Lock接口,该接口提供了几个常见的锁相关的操作。 public interface Lock { void lock()...

阅读(5)评论(0)赞 (0)

Java

美团大佬带你从ReentrantLock的实现看AQS的原理及应用

21

刘莉莉 发布于 2019-12-12

前言 Java中的大部分同步类(Lock、Semaphore、ReentrantLock等)都是基于AbstractQueuedSynchronizer(简称为AQS)实现的。 AQS是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。 本文会从应用层逐渐深...

阅读(8)评论(0)赞 (0)

Java

JDK容器类List,Set,Queue源码解读

1

changyuan.xu 发布于 2019-12-12

List,Set,Queue都是继承Collection接口的单列集合接口。List常用的实现主要有ArrayList,LinkedList,List中的数据是有序可重复的。Set常用的实现主要是HashSet,Set中的数据是无序不可重复的。Queue常用的实现主要有Array...

阅读(12)评论(0)赞 (0)

Java

java笔记

1

darida 发布于 2019-12-12

一、笔记 对象是类的一个实例 类是一个模板,它描述一类对象的行为和状态。 每个类都有构造方法,一个类可以有多个构造方法 关键字new来创建一个新的对象,会调用构造方法初始化对象 顺序 package import语句 类定义 包主要用来对类和接口进行分类,Import语句就是用来...

阅读(12)评论(0)赞 (0)

Java

关于 Java 关键字 volatile 的总结

changyuan.xu 发布于 2019-12-12

1 什么是 volatile volatile 是 Java 的一个关键字,它提供了一种轻量级的同步机制。相比于重量级锁 synchronized,volatile 更为轻量级,因为它不会引起线程上下文的切换和调度。 2 volatile 的两个作用 可以禁止指令的重排序优化 提...

阅读(12)评论(0)赞 (0)

Java

Java并发编程系列-(3) 原子操作与CAS

1

邓龙华 发布于 2019-12-12

所谓原子操作是指不会被线程调度机制打断的操作;这种操作一旦开始,就一直运行到结束,中间不会有任何context switch,也就是切换到另一个线程。 为了实现原子操作,Java中可以通过synchronized关键字将函数或者代码块包围,以实现操作的原子性。但是synchron...

阅读(10)评论(0)赞 (0)

Java

乐观锁和悲观锁

xiaoli.he 发布于 2019-12-11

锁机制 在数据库操作过程中,为了避免两个或多个用户同时对一条数据操作,通常采用锁的机制来来解决数据冲突问题。 同样,在程序流程中为了避免对多线程共享的资源的修改冲突,也采用锁的机制来避免修改冲突 锁的分类 乐观锁(Optimistic Lock) 所谓乐观锁,就是相信大部分场景下...

阅读(10)评论(0)赞 (0)

Java

解析Java内存模型[译]

7

xiaoli.wang 发布于 2019-12-11

看到一篇关于Java内存模型的技术文章于是翻译一下供大家学习交流。 原文地址: 《Java Memory Model》 java内存模型指定了java虚拟机如何与计算机的内存(RAM)进行工作。java虚拟机是一整个计算机的抽象模型,所以这个模型天然的包括了内存模型,它被称之为j...

阅读(13)评论(0)赞 (0)

Java

CAS都不了解,你还怎么看J.U.C

puefu.he 发布于 2019-12-11

前言 说到 CAS (CompareAndSwap),不得不先说一说 悲观锁 和 乐观锁 ,因为CAS是乐观锁思想的一种实现。 悲观锁:总是很悲观的认为,每次拿数据都会有其他线程并发执行,所以每次都会进行加锁,用完之后释放锁,其他的线程才能拿到锁,进而拿到资源进行操作。java中...

阅读(15)评论(0)赞 (0)

Java

那些有趣的代码 —— 有点萌的 Tomcat 的线程池

3

darida 发布于 2019-12-11

最近抓紧时间看看了看tomcat 的源代码。 发现了一些有趣的代码,应该会写一系列文章和大家分享一下。 Tomcat 作为一个老牌的 servlet 容器,处理多线程肯定得心应手,为了能保证多线程环境下的高效,必然使用了线程池。 但是,Tomcat 并没有直接使用 j.u.c 里...

阅读(11)评论(0)赞 (0)

编程技术

今!年!面!试!太!难!了!

7

xubiao.zhuang 发布于 2019-12-10

面试,就像一场 战役 面试过程中, 是 输是赢 取决于面试者的 底蕴(气场+技能) 取决于 心态和认知及沟通技巧 面试其实可以理解为一场 聊天和谈判 在这个过程中有心理、思想上的 碰撞和博弈 其实你只需要搞清楚一个逻辑: “面试官 为什么会这样问 ? 他希望听到什么 答案 ? 然...

阅读(15)评论(0)赞 (0)

Java

2019年终总结Java后端面试题:集合+并发+Web+设计模式+Spring框架

2

xirruiqiang 发布于 2019-12-10

一、基础部分 JDK 和 JRE 的区别 == 和 equals 的区别 基本类型和包装类对象使用 == 和 equals进行比较的结果? 什么是装箱?什么是拆箱?装箱和拆箱的执行过程?常见问题? hashCode()相同,equals() 也一定为 true吗? final 在...

阅读(15)评论(0)赞 (0)

Java

java多线程与线程池

1

xubiao.zhuang 发布于 2019-12-10

1. 场景描述 以前多线程也常用,这次因需再页面上用到多线程,如下图,总结下,有需要的朋友可以参考下。 2. 解决方案 2.1 线程池概念 线程池官方定义不说了,通俗说下:池子的概念,事先(预定义)创建后,后续的线程可以直接从池子中拿,好处: (1)来创建线程比较消耗资源,不用重...

阅读(9)评论(0)赞 (0)

Java

JDK源码分析-CopyOnWriteArrayList

2

yeseng 发布于 2019-12-09

1. 概述 CopyOnWriteArrayList,从名字可以看出它跟 ArrayList 有点关系,可以理解为线程安全的 ArrayList。 它的类签名和继承结构 如下: <span style="margin: 0px; padding: 0px; max...

阅读(11)评论(0)赞 (0)

Java

获取JVM转储文件的Java工具类

1

hellas 发布于 2019-12-09

在上期文章 如何获取JVM堆转储文件 中,介绍了几种方法获取JVM的转储文件,其中编程方法是里面唯一一个从JVM内部获取的方法。这里就不演示了其他方法获取正在运行的应用程序的堆转储,重点放在了使用编程来获取转储文件的方法,并演示了如何使用jhat工具浏览/分析生成的二进制堆转储。...

阅读(19)评论(0)赞 (0)

Java

Java 并发编程 73 道面试题及答案

5

songhua.gao 发布于 2019-12-09

点击上方  Java后端 ,选择  设为星标 优质文章,及时送达 原文出处: https://blog.csdn.net/qq_34039315/article/details/7854931 1、在java中守护线程和本地线程区别? java中的线程分为两种...

阅读(18)评论(0)赞 (0)

Java

超好用的自带火焰图的 Java 性能分析工具 Async-profiler 了解一下

5

hellas 发布于 2019-12-09

可以点击上方蓝色 “ 未读代码 ” 关注我。 回复 资源 获取精心整理的 Java核心知识&面试资料。 火焰图 如果你经常遇到 Java 线上性能问题束手无策,看着线上服务 CPU 飙升一筹莫展,发现内存不断泄露满脸茫然。别慌,这里有一款低开销、自带 火焰图 、让你大呼好...

阅读(19)评论(0)赞 (0)

Java

【大厂面试真题350道】性能优化+微服务+并发编程+开源框架+分布式

7

puefu.he 发布于 2019-12-08

秋招面试已经过去有半个月了,我相信有人欢喜有人愁,大厂的面试题千奇百怪,不知道他会问到哪方面的知识点,我也是秋招大部队里面的一员,给大家整理出了18个大厂经常会问到200多道面试问题,涉及的知识点有,性能优化,微服务,并发编程,开源框架,分布式,等等。 一,性能优化专题: 1.t...

阅读(21)评论(0)赞 (0)