Java语言
文章平均质量分 95
江溢jonny
stay hungry, stay foolish
展开
-
深入浅出Java线程池ThreadPoolExecutor
本文基于JDK1.7的源码进行分析并解读。ThreadPoolExecutor是JUC提供的一类线程池工具,也是Java语言中应用场景最多的并发框架,可以说,几乎所有需要异步或者并发执行的,都可以使用Java线程池。那么首先,我们一起来比较一下“单纯使用线程的方案”和“使用ThreadPoolExecutor线程池的方案”,在解决问题上有什么区别吧。案例:抄写员在中世纪,有一种叫做抄写员(Scri...原创 2018-03-08 00:50:40 · 474 阅读 · 0 评论 -
线程封闭之ThreadLocal源码详解
本文内容将基于JDK1.7的源码进行讨论,并且在文章的结尾,笔者将会给出一些经验之谈,希望能给学习者带来些帮助。一、线程封闭在《Java并发编程实战》一书中提到,“当访问共享的可变数据时,通常需要使用同步。一种避免使用同步的方式就是不共享数据”。因此提出了“线程封闭”的概念,一种经常使用线程封闭的应用场景就是JDBC的Connection,通过线程封闭技术,可以把链接对象封闭在某个原创 2018-03-16 21:29:58 · 320 阅读 · 0 评论 -
Java多线程编程:FutureTask异步任务详解
本文内容将基于JDK1.7的源码进行讨论,并且在文章的结尾,笔者将会给出一些经验之谈,希望能给学习者带来些帮助。举个例子我们以一个例子开始开始本文内容。有一个作家,他准备开始写作,写作时间大约1个小时,作家想“那就在写作的时候顺便煮一些食物”,写作完刚好吃一点热食物。煮食物的时间我们假设是2个小时,那么煮食物的这个过程就是一个“异步任务”,我们把它用代码实现出来:public static cla...原创 2018-03-18 00:13:19 · 1796 阅读 · 1 评论 -
Java面试必问-死锁终极篇
背景这个话题是源自笔者以前跟人的一次技术讨论,“你是怎么发现死锁的并且是如何预防、如何解决的?”以前听到的这个问题的时候,虽然脑海里也有一些思路,但是都是不够系统化的东西。直到最近亲身经历一次死锁,才做了这么一次集中的思路整理,撰录以下文字。希望对同样问题的同学有所帮助。死锁定义首先我们先来看看死锁的定义:“死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现...原创 2018-03-20 23:16:46 · 4976 阅读 · 1 评论