标签:volatile

Java

Java线程实现与安全

1

Harries 发布于 2018-08-14

编辑推荐: 本文来自于cnblogs,介绍了线程的三种实现方式,Java线程的实现与调度,线程安全等。 一、线程的实现 1、线程的三种实现方式 首先并发并不是我们通常我们认为的必须依靠线程才能实现,但是在Java中并发的实现是离不开线程的,线程的主要实现有三种方式: 使用内核线程...

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

Java

Java内存模型

3

yanxinchi 发布于 2018-08-14

文章内容有并发、内存模型、重排序、内存屏障、happens-before规则、as-if-serial语义、顺序一致性内存模型、volatile、锁、final。 并发 并发需要处理的两个关键问题:线程之间通信和同步 通信:是指线程之间以何种机制来交换信息;在命令式编程中,通信机...

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

Java

collected questions

songhua.gao 发布于 2018-08-13

分布式锁 websocket zookeeper 重入锁 class的加载过程 GC原理(新生代、老生代、gc回收策略-mark-swap、copying、压缩、分区) Nginx相关知识以及日志文件处理 spring相关知识(aop、ioc,bean的生命周期(中哪个地方可以提...

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

Java

Guava Cache — Java 应用缓存神器

wenming.gapo 发布于 2018-08-13

导语: Guava 作为Google开源Java 库中的精品成员,在性能、功能上都十分出色,本文将从实际使用的角度,来对Guava进行讲解 在使用Cache之前,首先要考虑两个问题: 1、应该在什么情况下使用它? 2、如何正确的使用它? 作者本人有很大一部分代码都在逻辑层(CGI...

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

Java

对JAVA集合进行遍历删除时务必要用迭代器

13

xirruiqiang 发布于 2018-08-12

今天同事写了几行类似这样的代码: package cn.iigrowing.threads.study.CollectionModify; import java.util.ArrayList; import java.util.List; public class Concur...

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

Java

Java多线程之Callable接口

1

hellas 发布于 2018-08-12

Callable和Runnbale一样代表着任务,区别在于Callable有返回值并且可以抛出异常。 1. 创建线程的三种方式: 继承Thread,重写run方法 实现Runnable接口,重新run方法 实现Callable接口,重写call方法 2. Callable接口实际...

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

Java

JDK源码阅读:InterruptibleChannel与可中断IO

2

xiaoli.wang 发布于 2018-08-08

Java传统IO是不支持中断的,所以如果代码在read/write等操作阻塞的话,是无法被中断的。这就无法和Thead的interrupt模型配合使用了。JavaNIO众多的升级点中就包含了IO操作对中断的支持。InterruptiableChannel表示支持中断的Channe...

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

Java

Java并发——AbstractQueuedSynchronizer(AQS)同步器

2

xirruiqiang 发布于 2018-08-07

在此之前介绍ReentrantLock、 ReentrantReadWriteLock 中都有sync属性,而sync正是继承了AQS(AbstractQueuedSynchronizer)同步器。AQS采用 模板 设计模式,调用其模板方法( 独占式获取与释放同步状态、共享式获取...

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

Java

再有人问你 synchronized 是什么,就把这篇文章发给他

8

尖兵 发布于 2018-08-06

在 再有人问你Java内存模型是什么,就把这篇文章发给他 中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性、可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized、volatile、final、concurren包等。 在《深入理解Jav...

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

Java

Netty源码分析-8-ChannelOutboundBuffer

3

邓龙华 发布于 2018-08-05

前面我们看到了Java对象如何通过Encoder转换成ByteBuf对象的,那么现在问题来了,ByteBuf是如何写入到远程节点的呢,这就是本文要分析的内容。 在前面的ChannelPipeline分析中我们提到过HeadContext和TailContext两个特殊的Chann...

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

Java

Java–为什么需要主动关闭文件?

1

小丁 发布于 2018-08-04

在Java编程中,对于一些文件的使用往往需要主动释放,比如 InputStream , OutputStream , SocketChannel 等等,那么有没有想过为什么要主动释放这些资源?难道GC回收时不会释放吗?本文主要是对这一系列问题分析解答。(本文所使用的环境默认为Li...

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

Java

SOFATracer (三) : SOFATracer 中 Disruptor 实践

3

yeseng 发布于 2018-08-04

建议阅读本篇前,请先阅读前两篇 SOFATracer 中, AsyncCommonDigestAppenderManager 对 disruptor 进行了封装,用于处理外部组件的 Tracer 摘要日志。该部分借助 AsyncCommonDigestAppenderManage...

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

Java

SOFATracer (二) : Disruptor 简单使用

5

小丁 发布于 2018-08-04

A High Performance Inter-Thread Messaging Library 高性能的线程间消息传递库 关于 Disruptor 的 一些原理分析可以参考:disruptor 案例 先通过 Disruptor 的一个小例子来有个直观的认识;先看下它的构造函数...

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

Java

Java并发基础:了解无锁CAS就从源码分析

2

yeseng 发布于 2018-08-04

什么是 CAS CAS的全称为Compare And Swap,直译就是比较交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值,其实现方式是基于硬件平台的汇编指令,在intel的CPU中,使用的是 cmpxchg 指令,就是说CAS...

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

Java

JDK源码阅读-InterruptibleChannel与可中断IO

2

zhuangli 发布于 2018-08-01

Java传统IO是不支持中断的,所以如果代码在read/write等操作阻塞的话,是无法被中断的。这就无法和Thead的interrupt模型配合使用了。JavaNIO众多的升级点中就包含了IO操作对中断的支持。InterruptiableChannel表示支持中断的Channe...

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

Java

深入理解单例模式(下)

1

darida 发布于 2018-08-01

《 Effective Java 》已经告诉我们,在单例类中提供一个readResolve方法就可以完成单例特性。这里大家可以自己去测试。 接下来,我们去看看Java提供的反序列化是如何创建对象的! ObjectInputStream 对象的序列化过程通过ObjectOutput...

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

Java

还在用阻塞队列?Disruptor了解一下?

11

darida 发布于 2018-07-31

听到队列相信大家对其并不陌生,在我们现实生活中队列随处可见,去超市结账,你会看见大家都会一排排的站得好好的,等待结账,为什么要站得一排排的,你想象一下大家都没有素质,一窝蜂的上去结账,不仅让这个超市崩溃,还会容易造成各种踩踏事件,当然这些事其实在我们现实中也是会经常发生。 当然在...

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

Java

Class文件结构&字节码指令

25

dulong 发布于 2018-07-27

Class文件存储的内容称为字节码(ByteCode),包含了JVM指令集和符号表以及若干其他辅助信息。 class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,中间没有添加任何分隔符,整个Class文件中存储的内容几乎全部是程序...

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