Java并发编程与高并发学习笔记(一)基本概念总结

基本概念

并发

同时拥有两个或者多个线程,如果程序在单核处理器上运行,多个线程将交替地换入或换出内存,这些线程是同时“存在”的,每个线程都处于执行过程中的某个状态,如果运行在多核处理器上,此时,程序中的每个线程都将分配到一个处理器核上,因此可以同时运行。

高并发

高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指通过设计包装系统能够同时并行处理很多请求。

简单对比

并发:多个线程操作相同的资源,保证线程安全,合理使用资源。

高并发:服务能同时处理很多请求,提高程序性能。

并发及并发的线程安全处理

线程安全性

原子性、可见性、有序性、atomic包、CAS算法、synchorized和Lock、volatile、happes-before

安全发布对象

安全发布方法、不可变对象、final关键字使用、不可变方法、线程不安全类与写法

线程安全手段

对战封闭、ThreadLocal线程封闭、JDBC的线程封闭、同步容器、并发容器、J.U.C

AQS及其他J.U.C组件

CountDownLatch、Semaphore、Cyclicbarrier、ReentrantLock与锁、Condition、FutureTask、Fork/Join框架、BlockingQueue

线程池

new Thread弊端、线程池的好处、ThreadPoolExecutor、Executor框架接口

额外补充

死锁的产生与预防、多线程并发最佳实践、Spring的线程安全、HashMap和ConcurrentHashMap深入理解

高并发处理的思路及手段

扩容

水平扩容、垂直扩容

缓存

Redis、Memcache、Guava、Cache等

队列

Kafka、RabbitMQ、RocketMQ等队列特性及使用队列应关注的点

应用拆分

服务化Dubbo与微服务SpringCloud

限流

Guava RateLimiter的介绍与使用、常用的限流算法、自己来实现分布式限流

服务降级与服务熔断

服务降级的多种选择、Hystrix介绍及使用

数据库切库、分库、分表

切库、分表、支持多数据源的原理及实现

高可用的一些手段

任务调度分布式elastic-job、主备curator的实现、监控报警机制

涉及的知识技能

总体架构

SpringBoot、Maven、JDK8、MySQL

基础组件

Mybatis、Guava、Lombok、Redis、Kafka

高级组件(类)

Joda-Time、Atomic包、J.U.C、AQS、ThreadLocal、RateLimiter、Hystrix、threadPool、shardbatis、curator、elastic-job

本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
极客文库 » Java并发编程与高并发学习笔记(一)基本概念总结

欢迎加入「极客文库」,成为原创作者从这里开始!

立即加入 了解更多