并发编程
成长为架构师的必经之路。如果你只会SpringBoot+MyBatis,你也许能很快地做出一个项目,但你可能做不出一个很“快”的项目。回顾,进阶,并发编程的各种知识,了解一下?
君莫笑(๑˙ー˙๑)
欢迎互关,一起学习,共同进步
展开
-
走进Java里的线程世界
线程基础、线程之间的共享和协作基础概念什么是进程和线程CPU时间片轮转机制澄清并行和并发高并发编程的意义、好处和注意事项认识Java里的线程 基础概念 什么是进程和线程 进程是程序运行资源分配的最小单位 进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘IO等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的程序关于某...原创 2019-07-28 17:14:40 · 972 阅读 · 3 评论 -
学会使用线程的并发工具类(ForkJoin、CountdownLatch、CyclicBarrier、Semaphore、Exchange)
线程的并发工具类ForkJoin工作原理工作密取使用范式 ForkJoin 工作原理 工作密取 即当前线程的Task已经全被执行完毕,则自动取到其他线程的Task池中取出Task继续执行。 ForkJoinPool中维护着多个线程(一般为CPU核数)在不断地执行Task,每个线程除了执行自己职务内的Task之外,还会根据自己工作线程的闲置情况去获取其他繁忙的工作线程的Task,如此一来就能能够减...原创 2019-07-31 10:09:25 · 1678 阅读 · 1 评论 -
学会使用原子操作CAS(Compare And Swap)
原子操作CAS什么是原子操作?如何实现原子操作?加锁CASCAS实现原子操作的三大问题JDK中相关原子操作类(java.util.concurrent.atomic)的使用AtomicIntegerAtomicIntegerArrayAtomicReferenceAtomicStampedReferenceAtomicMarkableReference 什么是原子操作? 假定有两个操作A和B,如果...原创 2019-07-31 18:48:47 · 1213 阅读 · 0 评论 -
深入理解显式锁(Lock)和AQS(AbstractQueuedSynchronizer)(超详细)
显式锁和AQS显式锁Lock特性使用范式APIReentrantLock(可重入锁)锁的可重入锁的公平和非公平APICondition使用范式APILockSupportCLH(队列锁) 显式锁 Lock 接口,实现类:ReentrantLock , ReentrantReadWriteLock.ReadLock , ReentrantReadWriteLock.WriteLock 有了synch...原创 2019-08-04 12:18:34 · 2021 阅读 · 2 评论 -
一文彻底搞懂并发容器(ConcurrentHashMap、BlockingQueue等)
并发容器预备知识hashHashMap为什么会出现ConcurrentHashMapJDK1.7中多线程下HashMap死循环分析 预备知识 hash 就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入...原创 2019-08-08 07:46:22 · 1833 阅读 · 9 评论 -
Java面试经常会问到的线程池,你搞清楚了吗?
线程池为什么要用线程池? 为什么要用线程池? Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在...原创 2019-08-09 17:44:14 · 1062 阅读 · 0 评论 -
Java并发安全知识点总结
并发安全什么是线程安全性如何做到线程安全线程封闭使用无状态类让类不可变安全地发布 什么是线程安全性 在《Java并发编程实战》中,定义如下: 当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在调用代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为,那么就称这个类是线程安全的。 如何做到线程安全 线程封闭 实现好的并发是一件困难的事情,所以很多时候我...原创 2019-08-14 19:52:54 · 570 阅读 · 0 评论 -
大厂很可能会问到的JMM底层实现原理
JMM和底层实现原理计算机原理 JMM(Java Memory Model),Java内存模型。JMM定义了Java 虚拟机(JVM)在计算机内存(RAM)中的工作方式。JVM是整个虚拟计算机模型,JMM隶属于JVM。Java1.5版本对其进行了重构,现在的Java仍沿用了Java1.5的版本。 JMM遇到的问题与现代计算机中遇到的问题是差不多的。 物理计算机中的并发问题,物理机遇到的并发问题与虚...原创 2019-08-19 10:31:38 · 1093 阅读 · 0 评论