并发编程
Mr_Smile2014
加油↖(^ω^)↗,smile....
展开
-
剖析Java同步块synchronized及常用使用方法
Java 同步块(synchronized block)用来标记方法或者代码块是同步,避免线程的资源竞争和数据的不一致问题。 Java中的同步块用synchronized标记。同步块在Java中是同步在某个对象上。所有同步在这个对象上的同步块在同一时刻只能被一个线程进入并执行操作。其它对该对象的同步块的线程将被阻塞,直到执行该同步块中的线程执行完成退出。接下来介绍同原创 2015-11-07 22:11:01 · 1389 阅读 · 0 评论 -
深入理解volitale关键字
一、java内存模型与多线程编程中的三个感念1、原子性原子性是指一些操作或者全都执行,要么或者全都不执行,整个操作作为一个整体是不可分割的,例如,一个银行中有两个账户A,B,现在要从A账户中转账500元到B账户,那么一共可以分为两个步骤:1、从A账户取出500元:A = A - 500 ;2、向B账户存入500元:B = B + 50转载 2015-11-09 22:47:28 · 2618 阅读 · 1 评论 -
Java并发编程:深入剖析ThreadLocal
有多年编程经验的软件行业艺术家们应该都知道ThreadLocal。ThreadLocal很多地方叫做线程本地变量,也有些地方叫做线程本地存储。通俗的讲ThreadLocal可以让创建的变量只被同一个线程进行读和写操作。所以尽管有两个线程同时执行一段相同的代码,而且这段代码都指向同一个ThreadLocal变量的引用,但是这两个线程依然不能看到彼此的ThreadLocal变量域。Th原创 2015-10-31 20:35:34 · 1409 阅读 · 0 评论 -
java常用的几种线程池比较
一:newCachedThreadPool (1)缓存型池子,先查看池中有没有以前建立的线程,如果有,就reuse,如果没有,就建立一个新的线程加入池中; (2)缓存型池子,通常用于执行一些生存周期很短的异步型任务;因此一些面向连接的daemon型server中用得不多; (3)能reuse的线程,必须是timeout IDLE内的池中线程,缺省转载 2015-12-02 20:20:19 · 7649 阅读 · 3 评论 -
【好文推荐】并发性能优化 : 降低锁粒度
在高负载多线程应用中性能是非常重要的。为了达到更好的性能,开发者必须意识到并发的重要性。当我们需要使用并发时, 常常有一个资源必须被两个或多个线程共享。转载 2016-08-01 17:29:51 · 2159 阅读 · 2 评论 -
synchronized与ReentrantLock的介绍、使用、适合场景及比较
JDK 5.0为开发人员开发高性能的并发应用程序提供了一些很有效的新选择,目前存在两种锁机制:synchronized和Lock,Lock接口及其实现类是JDK5增加的内容,ReentrantLock是Lock的实现。在实际的工作中,大家对synchronized和ReentrantLock都使用的比较多,今天对这两种锁机制进行了总结并分享给各位朋友们,希望对大家有所帮助。原创 2016-08-08 15:29:15 · 8399 阅读 · 4 评论 -
在高并发的情况下小小的日志打印会严重影响到性能。
程序的性能与日志的输出内容及输出到控制台、文件的格式有非常重要的影响。下面将给大家讲解是怎么影响的。原创 2016-09-01 16:03:26 · 14436 阅读 · 2 评论