ThreadLocal
摘要:ThreadLocalMap的定义是在ThreadLocal类中,真正的引用却是在Thread类中。 ThreadLocalMap中用于存储数据的entrystatic class Entry extends WeakReference { /** The value a...
阅读全文
posted @
2015-07-31 23:55
lnlvinso
阅读(289)
推荐(0) 编辑
NIO内存映射
摘要:磁盘的IO因为速度较慢,可能成为系统运行的瓶颈。所以磁盘的IO在操作系统级实现了提前读,延迟写的机制来提升IO的性能。 提前读就是一次读取需求的数据的同时多读接下来的一段数据至OS缓冲区中,延迟写就是待OS缓冲区中的数据到了一定量时一次写入。 Java中的Bufferxxx类也提供了缓冲区来...
阅读全文
posted @
2015-07-31 23:52
lnlvinso
阅读(515)
推荐(0) 编辑
CAS基础和原子类
摘要:基于CAS实现的AtomicInteger、 AtomicLong、 AtomicReference、 AtomicBoolean也被称为乐观锁。 CAS的语义是“我认为V的值应该为A,如果是,那么将V的值更新为B,否则不修改并告诉V的值实际为多少”。当多个线程尝试使用CAS同时更新同一个变量...
阅读全文
posted @
2015-07-21 23:53
lnlvinso
阅读(931)
推荐(0) 编辑
Java锁概念基础
摘要:Java中的锁不管是Lock还是synchronized都可以分为互斥锁和非互斥锁。 互斥锁只能被一个线程持有,其他线程只能等待锁的释放。synchronized,ReentrantLock,ReadWriteReentrantLock的WriteLock是互斥的,但ReadLock不是互斥的...
阅读全文
posted @
2015-07-19 12:01
lnlvinso
阅读(500)
推荐(0) 编辑
生产者消费者模式
摘要:学习Java的多线程,生产者消费者模式是避免不了的。下面将以wait/notify,await/singal,blockingquene几种方式来实现生产者消费者模式。 下面的仅仅是例子,实际应用中应该使用Executor来完成,并且保证线程及线程池可以正常关闭。实际使用中需要考虑的情况是生产...
阅读全文
posted @
2015-07-18 17:40
lnlvinso
阅读(684)
推荐(0) 编辑
ThreadPoolExecutor
摘要:使用Java自带的线程池,一般都是如下的使用:ExecutorService exec = Executors.newCachedThreadPool(); //will create one thread for each task for(int i=0;i()); ...
阅读全文
posted @
2015-07-12 12:19
lnlvinso
阅读(1227)
推荐(0) 编辑
NIO基础篇(三)
摘要:NIO里对性能提升最显著的是内存映射(memory mapping),内存访问的速度往往比文件访问的速度快几个数量级。 在内存映射之前,还需要看NIO的一些其他的特性。 缓冲区分片 slice()方法根据现有的缓冲区创建一个子缓冲区。也就是说,它创建一个新的缓冲区,新缓冲区与原来的缓冲区的一...
阅读全文
posted @
2015-07-05 23:00
lnlvinso
阅读(297)
推荐(0) 编辑
深入理解Java内存模型之系列篇[转]
摘要:原文链接:http://blog.csdn.net/ccit0519/article/details/11241403 深入理解Java内存模型(一)——基础 并发编程模型的分类 在并发编程中,我们需要处理两个关键问题:线程之间如何通信及线程之间如何同步(这里的线程是指并发执行的活动实体)...
阅读全文
posted @
2015-07-05 22:39
lnlvinso
阅读(267)
推荐(0) 编辑
修改Java程序的进程名
摘要:1、修改tomcat进程名字: 当同一个服务器上启动多个tomcat后,我们会在任务管理器中看见多个java.exe,当我们需要对某个tomcat进行监控时,却无法区分出该tomcat的进程,那么如何修改进程名呢? 可以使用端口号来区分不同的tomcat进程,使用netstat -nao | f...
阅读全文
posted @
2015-07-05 19:57
lnlvinso
阅读(11056)
推荐(0) 编辑
volatile
摘要:volatile 可以看做是一种轻量级的synchronized实现,volatile实现的仅仅是synchronized的部分功能,但是开销较synchronized小。特定的情形下,使用volatile会更为合适。 synchronized提供了两种主要特性:互斥 和可见性。互斥即同一...
阅读全文
posted @
2015-07-01 22:29
lnlvinso
阅读(259)
推荐(0) 编辑