标签:volatile

Java

Java中的锁「原理、锁优化、CAS、AQS」

22

zhuangli 发布于 2020-01-16

一、为什么要用锁? 锁-是为了解决并发操作引起的脏读、数据不一致的问题。 二、锁实现的基本原理 2.1、volatile Java编程语言允许线程访问共享变量, 为了确保共享变量能被准确和一致地更新,线程应该确保通过排他锁单独获得这个变量。Java语言提供了volatile,在某...

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

Java

聊聊artemis的SessionConsumerFlowCreditMessage

puefu.he 发布于 2020-01-16

序 本文主要研究一下artemis的SessionConsumerFlowCreditMessage SessionConsumerFlowCreditMessage activemq-artemis-2.11.0/artemis-core-client/src/main/jav...

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

Java

【Java并发基础】并发编程bug源头:可见性、原子性和有序性

2

yeseng 发布于 2020-01-16

前言 CPU 、内存、I/O设备之间的速度差距十分大,为了提高CPU的利用率并且平衡它们的速度差异。计算机体系结构、操作系统和编译程序都做出了改进: CPU增加了 缓存 ,用于平衡和内存之间的速度差异。 操作系统增加了 进程、线程 ,以时分复用CPU,进而均衡CPU与I/O设备之...

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

Java

2020年1月的最新的Java面试经历整理(一次性查缺补漏个够)

1

hellas 发布于 2020-01-16

现在已经是2020年了,相信很多人都在准备面试,,如何拿到心仪的 Offer,进入梦寐以求的大厂,实现自己的职业理想,达到程序员的小康水平。 这篇文章主要介绍了 刘哥 一月份的几次面经,(一次性查缺补漏个够), !(感谢刘哥的内容提供) 对于面试的那几家公司暂不公布,望理解。 第...

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

Java

大数据方向学习面试知识图谱

5

yeseng 发布于 2020-01-15

正所谓,无招胜有招。 愿读到这篇文章的技术人早日明白并且脱离技术本身,早登彼岸。 一切技术最终只 是雕虫小 技 。 大纲 本系列主题是大数据开发面试指南,旨在为大家提供一个大数据学习的基本路线,完善数据开发的技术栈,以及我们面试一个大数据开发岗位的时候,哪些东西是重点考察的,这些...

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

Java

聊聊artemis的SessionProducerCreditsMessage

yanxinchi 发布于 2020-01-15

序 本文主要研究一下artemis的SessionProducerCreditsMessage SessionProducerCreditsMessage activemq-artemis-2.11.0/artemis-core-client/src/main/java/org/...

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

Java

JAVA锁原理之 CAS原子操作篇

6

尖兵 发布于 2020-01-15

原子操作(atomic operation)指的是由 多步操作组成的一个操作 。如果该操作不能原子地执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。 现代操作系统中,一般都提供了原子操作来实现一些同步操作,所谓原子操作,也就是一个独立而不可分割的操作...

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

Java

RxJava(四):线程操作

2

wenming.gapo 发布于 2020-01-15

博客主页 1. 调度器(Scheduler)的种类 1.1 RxJava 线程介绍 RxJava 是一个为异步编程而实现的库,异步是其重要特色,合理地利用异步编程能够提高系统的处理速度。但是异步也会带来线程的安全问题,而且异步并不等于并发,与异步概念相对应的是同步。 在默认情况下...

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

Java

透过面试题掌握HashMap【持续更新中】

3

hanze 发布于 2020-01-15

最近做了一个面试题解答的开源项目,大家可以看一看,如果对大家有帮助,希望大家帮忙给一个star,谢谢各位大佬了! 《面试指北》项目地址: https://github.com/NotFound9/… 下面是主要是自己看了《疯狂Java讲义》和一些Java容器类相关的博...

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

Java

java架构之路(多线程)synchronized详解以及锁的膨胀升级过程

11

zhuangli 发布于 2020-01-14

上几次博客,我们把volatile基本都说完了,剩下的还有我们的synchronized,还有我们的AQS,这次博客我来说一下synchronized的使用和原理。 synchronized是jvm内部的一把隐式锁,一切的加锁和解锁过程是由jvm虚拟机来控制的,不需要我们认为的干...

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

Spring

美团面试 154 道题分享!

hellas 发布于 2020-01-14

点击上方“ 后厂技术官 ”,马上关注, 来源:程序员面试 Java集合22题 JVM与调优21题 并发编程28题 spring 25题 设计模式 10题 springboot 22题 Netty10题 Redis 16题 Java集合22题 ArrayList 和 Vector ...

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

Java

java架构之路(多线程)大厂方式手写单例模式

1

songhua.gao 发布于 2020-01-14

上期回顾: 上次博客我们说了我们的volatile关键字,我们知道volatile可以保证我们变量被修改马上刷回主存,并且可以有效的防止指令重排序,思想就是加了我们的内存屏障,再后面的多线程博客里还有说到很多的屏障问题。 volatile虽然好用,但是别用的太多,咱们就这样想啊,...

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

Java

面试必问:手写一个内存泄漏的程序

hellas 发布于 2020-01-13

手写一个内存泄露的程序是面试官经常问的问题。 造成内存泄漏,就是让运行的程序无法访问存储在内存中的对象,下面是Java实现: 创建一个长时间运行的线程(使用线程池泄露的速度更快)。 线程通过ClassLoader加载某个类(也可以用自定义ClassLoader)。 这个类分配了大...

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

Java

java架构之路(多线程)JMM和volatile关键字(二)

6

songhua.gao 发布于 2020-01-13

貌似两个多月没写博客,不知道年前这段时间都去忙了什么。 好久以前写过一次和volatile相关的博客,感觉没写的那么深入吧,这次我们继续说我们的volatile关键字。 复习: 先来简单的复习一遍以前写过的东西,上次我们说了内存一致性协议M(修改)E(独占)S(共享)I(失效)四...

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

Java

HashMap 和 currentHashMap 终于总结清楚了!

6

xiaoli.he 发布于 2020-01-13

一、什么是哈希表 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能 数组 采用一段连续的存储单元来存储数据。 对于指定下标的查找,时间复杂度为O(1); 通过给定值进行查找,需要遍历数组,逐一比对给定关键字和数组元素,时间复杂度为O(n),当然,对于有...

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

Java

Netty如何监控内存泄露

darida 发布于 2020-01-13

Netty如何监控内存泄露 前言 一般而言,在Netty程序中都会采用池化的ByteBuf,也就是 PooledByteBuf 以提高程序性能。但是 PooledByteBuf 需要在使用完毕后手工释放,否则就会因为 PooledByteBuf 申请的内存空间没有归还进而造成内存...

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

Java

突破Java面试(22) – Redis过期策略及手写LRU

1

尖兵 发布于 2020-01-12

0 欢迎关注 Github 欢迎关注全是干货的技术公众号 1 面试题 Redis的过期策略都有哪些?内存淘汰机制都有哪些?手写一下LRU代码实现? 2 考点分析 1)往redis里写的数据怎么没了? 生产环境的redis怎么经常会丢掉一些数据?写进去了,过一会儿可能就没了。 问这...

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