高并发_笔记

【高并发】优化加锁方式时竟然死锁了!!

duchaochen阅读(533)评论(0)赞(0)

写在前面 今天,在优化程序的加锁方式时,竟然出现了死锁!!到底是为什么呢?!经过仔细的分析之后,终于找到了原因。 为何需要优化加锁方式? 在《【高并发】高并发环境下诡异的加锁问题(你加的锁未必安全)》一文中,我们在转账类TansferAcc...

【高并发】什么是ForkJoin?看这一篇就够了!

duchaochen阅读(525)评论(0)赞(0)

写在前面 在JDK中,提供了这样一种功能:它能够将复杂的逻辑拆分成一个个简单的逻辑来并行执行,待每个并行执行的逻辑执行完成后,再将各个结果进行汇总,得出最终的结果数据。有点像Hadoop中的MapReduce。 ForkJoin是由JDK1...

【高并发】学好并发编程,关键是要理解这三个核心问题

duchaochen阅读(521)评论(0)赞(0)

写在前面 写【高并发专题】有一段时间了,一些读者朋友留言说,并发编程很难,学习了很多的知识,但是在实际工作中却无从下手。对于一个线上产生的并发问题,又不知产生这个问题的原因究竟是什么。对于并发编程,感觉上似乎是掌握了,但是真正用起来却不是那...

高并发之——从源码角度分析创建线程池究竟有哪些方式

duchaochen阅读(521)评论(0)赞(0)

前言 在Java的高并发领域,线程池一直是一个绕不开的话题。有些童鞋一直在使用线程池,但是,对于如何创建线程池仅仅停留在使用Executors工具类的方式,那么,创建线程池究竟存在哪几种方式呢?就让我们一起从创建线程池的源码来深入分析究竟有...

高并发之——不得不说的线程池与ThreadPoolExecutor类浅析

duchaochen阅读(528)评论(0)赞(0)

一、抛砖引玉 既然Java中支持以多线程的方式来执行相应的任务,但为什么在JDK1.5中又提供了线程池技术呢?这个问题大家自行脑补,多动脑,肯定没坏处,哈哈哈。。。 说起Java中的线程池技术,在很多框架和异步处理中间件中都有涉及,而且性能...

高并发之——深入解析Callable接口

duchaochen阅读(520)评论(0)赞(0)

本文纯干货,从源码角度深入解析Callable接口,希望大家踏下心来,打开你的IDE,跟着文章看源码,相信你一定收获不小。 1.Callable接口介绍 Callable接口是JDK1.5新增的泛型接口,在JDK1.8中,被声明为函数式接口...

高并发之——线程的执行顺序

duchaochen阅读(518)评论(0)赞(0)

一、线程的执行顺序是不确定的 调用Thread的start()方法启动线程时,线程的执行顺序是不确定的。也就是说,在同一个方法中,连续创建多个线程后,调用线程的start()方法的顺序并不能决定线程的执行顺序。 例如,这里,看一个简单的示例...