标签:volatile

Java

Java LongAdder 原理

1

dulong 发布于 2019-08-25

本文作者ycwu314,未经允许请勿转载Java LongAdder 原理 : https://ycwu314.github.io/p/java-longadder/ 温馨提示:如果不是在这些地方看到这篇文章,那么你可能是爬虫文章的受害者: https://ycwu314.git...

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

Java

RateLimiter 源码分析(Guava 和 Sentinel 实现)

8

puefu.he 发布于 2019-08-25

作者javadoop,资深Java工程师。本文已获作者授权发布。 原文链接 https://www.javadoop.com/post… 本文主要介绍关于流控的两部分内容。 第一部分介绍 Guava 中 RateLimiter 的源码,包括它的两种模式,目前网上大部分...

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

Java

JDK源码那些事儿之PriorityBlockingQueue

2

changyuan.xu 发布于 2019-08-24

今天继续说一说阻塞队列的实现,今天的主角就是优先级阻塞队列PriorityBlockingQueue,从命名上看觉得应该是有序的,毕竟是优先级队列,那么实际上是什么情况,我们一起看下其内部实现,提前说明下,因为PriorityBlockingQueue涉及到了堆排序的相关使用,如...

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

Java

volatile的作用及正确的使用模式

4

puefu.he 发布于 2019-08-24

volatile 先从基础的知识说起吧,这样也有个来龙去脉。 我们都知道,程序运行后,程序的数据都会被从磁盘加载到内存里面(主存) 而当局部的指令被执行的时候,内存中的数据会被加载到更加靠近CPU的各级缓存,以及寄存器中。 当一个多线程程序执行在一个多核心的机器上时,就会出现真正...

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

Java

java多线程并发编程(三) volatile关键字

2

yeseng 发布于 2019-08-23

一、volatile的作用 关键字volatile是使变量在多个线程间可见,也就是强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值。 通过使用volatile关键字,强制的从公共内存中读取变量的值,内存结构如图所示: 使用volatile关键字增加了实例变量在多...

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

Java

Java网络编程和NIO详解9:基于NIO的网络编程框架Netty

25

puefu.he 发布于 2019-08-23

微信公众号【黄小斜】作者是蚂蚁金服 JAVA 工程师,目前在蚂蚁财富负责后端开发工作,专注于 JAVA 后端技术栈,同时也懂点投资理财,坚持学习和写作,用大厂程序员的视角解读技术与互联网,我的世界里不只有 coding!关注公众号后回复”架构师“即可领取 Java基础、进阶、项目...

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

Java

java并发编程

5

wenming.gapo 发布于 2019-08-22

一. 程序,进程,线程 程序:代码实现了功能,就是程序,是静态的 进程:执行中的程序就是进程,是动态的。是操作系统分配资源的最小单位 线程:进程内的一个执行单元,是程序执行的最小单位 二. jvm(java虚拟机)内存划分 1.堆:存放对象实例 2.方法区:存放类信息,常量,静态...

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

Java

值得思考的几个Java相关的问题

xirruiqiang 发布于 2019-08-22

这个问题我们往往都是知道,但是并没有深究其中的缘由,可能你会说这是 Java 设计者这么决定的呀,那你有没有想过为什么要这么设计呢?这个问题在我们 Java 编程的常识有了深入理解后才可以得到一定的解释。 能继续探讨这个问题的前提是你知道 Object 类下有 wait 和 no...

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

Java

Effective Java 3rd Edition — 第十一章 并发编程

puefu.he 发布于 2019-08-22

Item 78 : Synchronize access to shared mutable data 共享可变数据需要同步 synchronized 关键字可以保证同时只有一个线程可以执行或者阻塞该方法; 除了long和double之外,Java语言特性都能保证对变量的读写操作...

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

Java

Java并发编程学习第一部分day08——定制并发类

1

尖兵 发布于 2019-08-22

定制ThreadPoolExecutor类 实现基于优先级的Executor类 实现ThreadFactory接口生成定制线程 在Executor对象中使用ThreadFactory 定制运行在定时线程池中的任务 通过ForkJoinWorkerThreadFactory接口为F...

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

Java

大数据面试题-JavaSE

Harries 发布于 2019-08-21

1、String 、StringBuffer、StringBuilder 区别及底层实现 1、String是字符串常量, StringBuffer、StringBuilder是字符串变量 2、StringBuffer线程安全(方法用了synchronized修饰)、StringB...

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

Java

大数据面试题-JavaSE

wenming.gapo 发布于 2019-08-21

1、String 、StringBuffer、StringBuilder 区别及底层实现 1、String是字符串常量, StringBuffer、StringBuilder是字符串变量 2、StringBuffer线程安全(方法用了synchronized修饰)、StringB...

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

Java

聊聊dubbo的FailbackClusterInvoker

hellas 发布于 2019-08-21

序 本文主要研究一下dubbo的FailbackClusterInvoker FailbackClusterInvoker dubbo-2.7.3/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/support/F...

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

Java

为何我建议1-3年的Java程序员仔细看看这篇文章

3

刘莉莉 发布于 2019-08-21

此文的目的是为了督促自己去不断学习,让自己有更明确的方向去提升自己。以技能树为基础,以面试要点为大纲,我觉得比抓住什么看什么要更有目的,更能坚持下去。世界瞬息万变,我们要时刻准备着、时刻提高着自己,才能使自己更具有竞争力。 一、Java技能树 1、基本语法 这包括static、f...

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

Java

Java内存模型

xiaoli.wang 发布于 2019-08-21

Java内存模型 Why 为什么要有内存模型 1 CPU和缓存一致性问题 当程序在运行过程中,会将运算需要的数据从主存复制一份到CPU的高速缓存当中,那么CPU进行计算时就可以直接从它的高速缓存读取数据和向其中写入数据,当运算结束之后,再将高速缓存中的数据刷新到主存当中。当CPU...

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

Java

图解Java线程池原理

5

zhuangli 发布于 2019-08-20

为了避免频繁重复的创建和销毁线程,我们可以让这些线程进行复用,在线程池中,总会有活跃的线程在占用,但是线程池中也会存在没有占用的线程,这些线程处于空闲状态,当有任务的时候会从池子里面拿去一个线程来进行使用,当完成工作后,并没有销毁线程,而是将将线程放回到池子中去。 线程池主要解决...

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

Java

java面试突击-java基础 多线程

wenming.gapo 发布于 2019-08-20

1.继承 Thread 类,重写父类 run()方法 2.实现 runnable 接口 3.使用 ExecutorService、Callable、Future 实现有返回结果的多线程(JDK5.0 以后) 复制代码 (2) 多线程同步机制。 在需要同步的方法的方法签名中加入 s...

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

Java

Java 内存模型和 JVM 内存结构真不是一回事

2

hanze 发布于 2019-08-20

这两个概念估计有不少人会混淆,它们都可以说是 JVM 规范的一部分,但真不是一回事!它们描述和解决的是不同问题,简单来说, Java 内存模型 ,描述的是多线程允许的行为 JVM 内存结构 ,描述的是线程运行所设计的内存空间 JVM 是什么呢?它屏蔽了底层架构的差异性,是 Jav...

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