关闭

JUC源码分析3-原子变量-AtomicIntegerFieldUpdater/AtomicLongFieldUpdater/AtomicReferenceFieldUpdater

如果我们系统中已经有某个类的变量定义为volatile了,现在为了保证对这个变量的原子性操作,就可以尝试使用这几个类,举个栗子: import sun.reflect.Reflection; public class AtomicFieldIncr { //这里最好是public volatile,不要加final、static //修饰符最好也不要为protected,pr...
阅读(702) 评论(0)

JUC源码分析2-原子变量-AtomicIntegerArray/AtomicLongArray/AtomicReferenceArray

JUC针对数组元素的原子封装,先看AtomicIntegerArray。 private static final Unsafe unsafe = Unsafe.getUnsafe(); //arrayBaseOffset获取数组首个元素地址偏移 private static final int base = unsafe.arrayBaseOffset(int[].class); //shif...
阅读(344) 评论(0)

JUC源码分析1-原子变量-AtomicInteger/AtomicBoolean/AtomicLong/AtomicReference

记录学习中的一些东西,防止以后遗忘,参考了很多别人的文章,感谢之! 多线程并发操作时,对普通变量++或--不具有原子性,每次读取的值都不一样,看代码: import java.util.concurrent.atomic.AtomicInteger; public class Incr { public AtomicInteger a = new AtomicInteger...
阅读(583) 评论(0)

Protostuff序列化

这几天在看rpc框架的东西,一哥们写的轻量级rpc框架(http://my.oschina.net/huangyong/blog/361751?fromerr=NpC3phqY)实现,写的rpc很不错,就跟着撸了遍代码,里面用到的序列化工具是protostuff,之前我们项目供应商接口用的xml,没用过protostuff,拿过来研究下,写个demo示例,以后再需要的话,也可以拿过来用。 常用的...
阅读(1764) 评论(0)

Java并发编程:线程池的使用

转自:http://www.cnblogs.com/dolphin0520/p/3932921.html ,线程池的使用,哎,苦逼的coder,学无止境 awaitTermination():用于等待子线程结束,再继续执行下面的代码 Java并发编程:线程池的使用   在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:   如...
阅读(219) 评论(0)

spring的bean获取项目根目录

昨天碰见个问题,maven打包多模块的web项目。将spring的bean配置在远程调度系统,调度系统通过发送调度命令到本地,本地通过线程池调用spring的bean。在service模块打包的jar中,我需要保存一些文件到本地,因为不是通过web调用,所以获取不到项目根目录,当时也没想到有什么好办法。所以就直接保存到系统目录,代码做预判,目录不存在就新建,在window下,创建目录都没有问题,但...
阅读(1399) 评论(0)

ConcurrentHashMap、synchronized与线程安全

转自:http://blog.csdn.net/sadfishsc/article/details/42394955 最近做的项目中遇到一个问题:明明用了ConcurrentHashMap,可是始终线程不安全 除去项目中的业务逻辑,简化后的代码如下: [java] view plain copy public class Test...
阅读(195) 评论(0)
    个人资料
    • 访问:73418次
    • 积分:1471
    • 等级:
    • 排名:千里之外
    • 原创:62篇
    • 转载:76篇
    • 译文:1篇
    • 评论:16条
    最新评论