chenssy
致力打造Java精品博客站点

JAVA

JVM致命错误日志(hs_err_pid.log)分析

chenssy阅读(4018)评论(0)

最近两天测试环境有一个服务总是会挂(两到三天一次),JVM虚拟机总是会崩溃。所以有必要了解JVM崩溃的原因是什么。 当JVM发生致命错误导致崩溃时,会生成一个hs_err_pid_xxx.log这样的文件,该文件包含了导致 JVM cras...

《Effective java》—–读书笔记

chenssy阅读(9890)评论(14)

2015年进步很小,看的书也不是很多,感觉自己都要废了,2016是沉淀的一年,在这一年中要不断学习、看书,努力提升自己!预计在2016年要看12本书,主要涉及java基础、Spring研究、java并发、JVM、分布式之类的。在今年面试的时...

【Java并发编程实战】—– AQS(四):CLH同步队列

chenssy阅读(2343)评论(1)

在【Java并发编程实战】—–“J.U.C”:CLH队列锁提过,AQS里面的CLH队列是CLH同步锁的一种变形。其主要从两方面进行了改造:节点的结构与节点等待机制。在结构上引入了头结点和尾节点,他们分别指向队列的头和尾,尝试获取锁、入队列、...

【Java并发编程实战】—–“J.U.C”:CLH队列锁

chenssy阅读(4494)评论(3)

在前面介绍的几篇博客中总是提到CLH队列,在AQS中CLH队列是维护一组线程的严格按照FIFO的队列。他能够确保无饥饿,严格的先来先服务的公平性。下图是CLH队列节点的示意图: 在CLH队列的节点QNode中包含有一个locked的字段,该...

【Java并发编程实战】—–“J.U.C”:CAS操作

chenssy阅读(2494)评论(4)

CAS,即Compare and Swap,中文翻译为“比较并交换”。 对于JUC包中,CAS理论是实现整个java并发包的基石。从整体来看,concurrent包的实现示意图如下: i++是一个非常经典的操作,它几乎充斥着我们每个人编写的...

【Java并发编程实战】—–“J.U.C”:Exchanger

chenssy阅读(1609)评论(0)

前面介绍了三个同步辅助类:CyclicBarrier、Barrier、Phaser,这篇博客介绍最后一个:Exchanger。JDK API是这样介绍的:可以在对中对元素进行配对和交换的线程的同步点。每个线程将条目上的某个方法呈现给 exc...

【Java并发编程实战】—–“J.U.C”:Semaphore

chenssy阅读(2081)评论(0)

信号量Semaphore是一个控制访问多个共享资源的计数器,它本质上是一个“共享锁”。 Java并发提供了两种加锁模式:共享锁和独占锁。前面LZ介绍的ReentrantLock就是独占锁。对于独占锁而言,它每次只能有一个线程持有,而共享锁则...

【Java并发编程实战】—–synchronized

chenssy阅读(3296)评论(4)

在我们的实际应用当中可能经常会遇到这样一个场景:多个线程读或者、写相同的数据,访问相同的文件等等。对于这种情况如果我们不加以控制,是非常容易导致错误的。在java中,为了解决这个问题,引入临界区概念。所谓临界区是指一个访问共用资源的程序片段...

Chenssy's Blog | 致力打造个人精品博客

联系作者读书系统