原文地址:作者: Jakob Jenkov   译者:张坤 CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。这听起来可能有一点复杂但是实际上你理解之后发现很简单,接下来,让我们跟深入的了解一下这项技术。 CAS的使用场景 在程序和算

JAVA   并发译文   concurrency  

作者:佐井    原文地址 现象 最近上线一个需求,完成需求的过程对代码进行了一次重构。应用发布后半个小时左右,发现一个机器报警,load过高。登陆机器看CPU使用情况,发现load已经正常,看下CPU使用情况,发现有一个核跑满,其他CPU使用率很低。大概一个小时后,其他机器陆续报警,发现同样的问题,紧急回滚应用。 应用运行在16G内存的虚机上,整个JVM11G内存,其中新生代3G,CMS gc,

JAVA   JVM   HashMap   并发  

感谢网友【张超盟】的投稿 1. 前言 AQS(AbstractQueuedSynchronizer)是 java.util.concurrent的基础。J.U.C中宣传的封装良好的同步工具类Semaphore、CountDownLatch、ReentrantLock、ReentrantReadWriteLock、FutureTask等虽然各自都有不同特征,但是简单看一下源码,每个类内部都包含一个如

JAVA   aqs   concurrency  

原文链接   作者:Alex Zhitnitsky   译者:有孚 Fork/Join框架在不同配置下的表现如何? 正如即将上映的星球大战那样,Java 8的并行流也是毁誉参半。并行流(Parallel Stream)的语法糖就像预告片里的新型光剑一样令人兴奋不已。现在Java中实现并发编程存在多种方式,我们希望了解这么做所带来的性能提升及风险是什么。从经过260多次测试之后拿到的数据来看,还是增

JAVA  

G1 GC是Jdk7的新特性之一、Jdk7+版本都可以自主配置G1作为JVM GC选项;作为JVM GC算法的一次重大升级、DK7u后G1已相对稳定、且未来计划替代CMS、所以有必要深入了解下: 不同于其他的分代回收算法、G1将堆空间划分成了互相独立的区块。每块区域既有可能属于O区、也有可能是Y区,且每类区域空间可以是不连续的(对比CMS的O区和Y区都必须是连续的)。这种将O区划分成多块的理念源于

JAVA  

原文链接  本文是Oracle官方《Java语言规范》的译文 JAVA语言规范:线程和锁 1 同步 JAVA编程语言提供了线程间通信的多种机制。这些方法中最基本的是同步化,此方法是使用监视器实现的。JAVA中每个对象与一个监视器相关联,一个线程可以加锁和解锁监视器。一次仅有一个线程可能在监视器上持有锁。尝试锁住该监视器的任何其他线程被阻塞,直到它们可以再该监视器上获得一个锁。线程t可以多次锁住特别

JAVA  

原文链接 作者:Jakob Jenkov 译者:fangqiang08(fangqiang08@gmail.com) java 7使得我们能够在同一个catch语句块中捕获多种不同的异常,这也叫做多重异常捕获。 在java7以前,我们可能要这样做: try { // execute code that may throw 1 of the 3 exceptions below. }

JAVA   exception   Multiple Exceptions  

原文链接 作者:Javin Paul 译者:之诸暇 除了lambda表达式,stream以及几个小的改进之外,Java 8还引入了一套全新的时间日期API,在本篇教程中我们将通过几个简单的任务示例来学习如何使用Java 8的这套API。 Java对日期,日历及时间的处理一直以来都饱受诟病,尤其是它决定将java.util.Date定义为可修改的以及将SimpleDateFormat实现成非线程安全

JAVA  

原文链接 作者:Jakob Jenkov 译者:fangqiang08(fangqiang08@gmail.com) Try-with-resources是java7中一个新的异常处理机制,它能够很容易地关闭在try-catch语句块中使用的资源。 利用Try-Catch-Finally管理资源(旧的代码风格) 在java7以前,程序中使用的资源需要被明确地关闭,这个体验有点繁琐。 下面的方法读取

JAVA   exception   java7   Try-with-resources  

原文链接 作者:Jakob Jenkov 译者:fangqiang08(fangqiang08@gmail.com) 这一小节概述了try-catch-finally 语句是怎样处理错误的,文中的例子是Java的,但是同样的规则也适用于C#。java和C#中异常的唯一区别就是C#中没有已检查异常。已检查异常和未检查异常将在后面小节更加详细地介绍。 程序中的异常表明一些错误或者异常情况发生了,异常如

JAVA   catch   exception   finally   try  
3 4 5 6 7 8 9 10 11