架构师
文章平均质量分 88
Rick1024
吾辈事业,方兴未艾!
展开
-
讲义整理-并发编程
知识树积累-并发编程并发编程线程基础、线程之间的共享和协作什么是进程和线程CPU核心数和线程数的关系CPU时间片轮转机制澄清并行和并发高并发编程的意义、好处和注意事项Java里的程序天生就是多线程的,那么有几种新启线程的方式?有开始就有结束,怎么样才能让Java里的线程安全停止工作呢?对Java里的线程再多一点点认识什么是线程间的共享?ThreadLocal什么是线程间的协作线程的并发工具类Fork-Join归并排序Fork/Join使用的标准范式CountDownLatch的作用、应用场景Callable原创 2021-04-21 22:49:02 · 272 阅读 · 1 评论 -
讲义整理-常见并发面试题
讲义整理-总复习和常见并发面试题总复习和常见并发面试题谈面试常见面试题在 java 中守护线程和用户线程的区别?线程与进程的区别什么是多线程中的上下文切换死锁与活锁的区别,死锁与饥饿的区别?synchronized 底层实现原理什么是线程组,为什么在 Java 中不推荐使用?什么是 Executors 框架?为什么使用 Executor 框架?在 Java 中 Executor 和 Executors 的区别?什么是原子操作?在 Java Concurrency API 中有哪些原子类(atomic cla原创 2021-04-20 11:18:53 · 269 阅读 · 0 评论 -
讲义整理-Java8新增的并发
讲义整理-Java8新增的并发Java8新增的并发原子操作 CASLongAdder其他新增StampLockCompleteableFutureFuture 的不足CompleteableFuture补充:Lambda 速成第一步第二步第三步Lambda函数描述符扩充知识点- Disrupto应用背景和介绍传统队列问题高性能的原理Java8新增的并发原子操作 CASLongAdderJDK1.8 时,java.util.concurrent.atomic 包中提供了一个新的原子类:LongAdd原创 2021-04-20 11:16:18 · 314 阅读 · 0 评论 -
讲义整理-JMM 和底层实现原理
讲义整理-JMM 和底层实现原理JMM 和底层实现原理JMM 基础-计算机原理物理内存模型带来的问题伪共享Java 内存模型(JMM)Java 内存模型带来的问题可见性问题竞争问题重排序重排序类型数据依赖性as-if-serial控制依赖性内存屏障临界区happens-before定义加深理解Happens-Before 规则volatile 详解volatile 特性volatile 的内存语义为何 volatile 不是线程安全的volatile 内存语义的实现volatile 的实现原理final 的原创 2021-04-20 11:12:30 · 151 阅读 · 0 评论 -
讲义整理-并发任务执行框架
讲义整理-并发任务执行框架实战--并发任务执行框架架构师是什么?主要职责架构师的方方面面实现一个基础框架需求的产生和分析需要做什么具体实现流程图测试项目背景和问题分析和改进继续改进数据结构的改进线程数的设置缓存的改进改进后的效果用户体验的改进启示实战–并发任务执行框架架构师是什么?在一个软件项目开发过程中,将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划的那个人,就是 架构师。一般是一个项目里的最资深的专业技术人员,可以说架构师首先一定是个Java 高级原创 2021-04-20 11:05:11 · 218 阅读 · 0 评论 -
讲义整理-并发安全
讲义整理-并发安全并发安全什么是线程安全性线程封闭无状态的类让类不可变volatile加锁和 CAS安全的发布TheadLocalServlet 辨析死锁概念现象、危害和解决现象危害解决其他安全问题活锁线程饥饿并发下的性能线程引入的开销上下文切换内存同步阻塞如何减少锁的竞争减少锁的粒度缩小锁的范围避免多余的锁锁分段替换独占锁线程安全的单例模式双重检查锁定解决之道懒汉式饿汉式并发安全什么是线程安全性在《Java 并发编程实战》中,定义如下:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这原创 2021-04-20 11:01:48 · 124 阅读 · 0 评论 -
讲义整理-线程池
线程池为什么要用线程池?Java 中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来 3个好处。降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。线程池原创 2021-04-20 10:56:21 · 120 阅读 · 0 评论 -
讲义整理-并发容器
讲义整理-并发容器并发容器预备知识hash位运算二进制常用位运算位运算运用场景为什么要使用 ConcurrentHashMap1.7 中 HashMap 死循环分析HashMap 扩容流并发下的扩容总结ConcurrentHashMapConcurrentHashMap 实现分析在 1.7 下的实现ConcurrentHashMap 的弱一致性size、containsValue在 1.8 下的实现与 1.8 中 HashMap 不同点:HashTable并发下的 Map 常见面试题汇总Q:HashMap原创 2021-04-20 10:53:32 · 168 阅读 · 0 评论 -
讲义整理-显式锁和 AQS
显式锁和 AQS显式锁和 AQS显式锁有了 synchronized 为什么还要Lock?Lock 的标准用法Lock 的常用 APIReentrantLock锁的可重入公平和非公平锁读写锁 ReentrantReadWriteLockCondition 接口Condition 常用方法Condition 使用范式Condition 使用了解 LockSupportCLH 队列锁AbstractQueuedSynchronizer学习 AQS 的必要性AQS 使用方式和其中的设计模式模板方法模式AQS 中的原创 2021-04-20 10:50:06 · 174 阅读 · 0 评论 -
讲义整理-原子操作 CAS
讲义整理-并发编程@[TOC](讲义整理-并发编程)原子操作 CAS什么是原子操作?如何实现原子操作?CAS 是怎么实现线程的安全呢?CAS 实现原子操作的三大问题ABA 问题循环时间长开销大只能保证一个共享变量的原子操作Jdk 中相关原子操作类的AtomicIntegerAtomicIntegerArray更新引用类型AtomicReferenceAtomicStampedReferenceAtomicMarkableReference原子更新字段类AtomicIntegerFieldUpdaterAto原创 2021-04-20 10:43:07 · 149 阅读 · 0 评论 -
讲义整理-线程的并发工具类
讲义整理-并发编程线程的并发工具类Fork-Join分而治之归并排序归并排序(降序)示例Fork-Join 原理工作密取Fork/Join 实战Fork/Join 使用的标准Fork/Join 的同步用法和异步用CountDownLatchCyclicBarrierCountDownLatch 和 CyclicBarrier 辨析SemaphoreSemaphore 还提供一些其他方法,具体如下。用 Semaphore 实现数据库连接池Semaphore 注意事项ExchangeCallable、Futur原创 2021-04-20 10:22:01 · 112 阅读 · 0 评论 -
讲义整理-线程基础、线程之间的共享和协作
讲义整理-线程基础、线程之间的共享和协作线程基础、线程之间的共享和协作什么是进程和线程CPU核心数和线程数的关系CPU时间片轮转机制澄清并行和并发高并发编程的意义、好处和注意事项多线程程序需要注意事项线程基础、线程之间的共享和协作什么是进程和线程进程是程序运行资源分配的最小单位进程是操作系统进行资源分配的最小单位,其中资源包括:CPU、内存空间、磁盘 IO 等,同一进程中的多条线程共享该进程中的全部系统资源,而进程和进程之间是相互独立的。进程是具有一定独立功能的程序关于某个数据集合上的一次运行原创 2021-04-19 18:22:51 · 260 阅读 · 0 评论 -
架构师--Nginx学习笔记:一、Linux基础(nginx)
本系列博文为学习资料,是根据老师讲义,加上自己理解描述整理而成。如有不当之处希望不吝指正,持续更新改正。原创 2020-03-07 23:24:34 · 283 阅读 · 0 评论 -
架构师--SpringCloud学习笔记:五、springcloud分布式配置中心和消息总线
分布式配置中心Spring Cloud的分布式配置中心比较重,下面自己实现一个分布式配置中心:基于zookeeper分布式配置中心hystrix原理休眠–》开启–》半开是智能的不需要干预;duboo没有熔断功能,需要手动配置1、分布式配置中心能干什么不用分布式配置中心,可能导致多个工程需要对多个中间件配置;比如连接DB或者Redis都是一样的配置,如果需要修改则要全改:抽取公共...原创 2020-03-06 21:23:47 · 211 阅读 · 0 评论 -
架构师--SpringCloud学习笔记:四、hystrix熔断详解及跟dubbo的对比,feign的运用
本系列博文为学习资料,是根据老师讲义,加上自己理解描述整理而成。如有不当之处希望不吝指正,持续更新改正。原创 2020-03-06 20:15:17 · 228 阅读 · 0 评论 -
架构师--SpringCloud学习笔记:三、springcloud熔断降级组件hystrix详解
本系列博文为学习资料,是根据老师讲义,加上自己理解描述整理而成。如有不当之处希望不吝指正,持续更新改正。服务雪崩雪崩是系统中的蝴蝶效应导致其发生的原因多种多样,有不合理的容量设计,或者是高并发 下某一个方法响应变慢,亦或是某台机器的资源耗尽。从源头上我们无法完全杜绝雪崩源头 的发生,但是雪崩的根本原因来源于服务之间的强依赖,所以我们可以提前评估。当整个微 服务系统中,有一个节点出现异常情况,就...原创 2020-03-06 17:35:14 · 301 阅读 · 0 评论 -
架构师--SpringCloud学习笔记:二、服务续约保活、下线和服务的调用负载均衡
Eureka 用户认证连接到 eureka 的时候需要带上连接的用户名和密码 eureka 服务端改造添加启动器 <!--安全验证--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&...原创 2020-03-06 14:56:19 · 282 阅读 · 0 评论 -
架构师--SpringCloud学习笔记:一、微服务的演化过程
本系列博文为学习资料,是根据老师讲义,加上自己理解描述整理而成。如有不当之处希望不吝指正,持续更新改正。1、架构演变过程我们最先接触的单体架构,整个系统就只有一个工程,打包往往是打成了 war 包,然后部署 到单一 tomcat 上面,这种就是单体架构,如图:假如系统按照功能划分了,商品模块,购物车模块,订单模块,物流模块等等模块。那么所 有模块都会在一个工程里面,这就是单体架构。优点...原创 2020-03-05 13:22:42 · 213 阅读 · 0 评论