上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页
摘要: 一、多线程语义 阿姆达尔定律通过系统中并行化和串行化的比重来描述多处理器系统能获得的运算加速能力,摩尔定律则用于描述处理器晶管体数量与运行效率之间的发展关系。这两个定律的更替代表了近年来硬件发展从追求处理器频率到追求多核心并行处理的发展过程。 实现线程主要有3种方式:使用内核线程实现,使用用户线程实 阅读全文
posted @ 2019-10-13 14:58 JMCui 阅读(556) 评论(0) 推荐(0)
摘要: 一、ThreadPoolExecutor 参数说明 corePoolSize:核心线程池的大小。当提交一个任务到线程池时,核心线程池会创建一个核心线程来执行任务,即使其他核心线程能够执行新任务也会创建线程,等到需要执行的任务数大于核心线程池基本大小时就不再创建。如果调用了线程池的 prestartA 阅读全文
posted @ 2019-09-20 07:46 JMCui 阅读(2271) 评论(1) 推荐(4)
摘要: 一、线程池工作流程 线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务(需要获得全局锁)。如果核心线程池里的线程都在执行任务,则进入下个流程。 线程池判断工作队列是否已满。如果工作队列没有满,则将新提交的任务存储在这个工作队列里。如果工作队列满了,则进入下个流程 阅读全文
posted @ 2019-09-19 23:24 JMCui 阅读(727) 评论(0) 推荐(0)
摘要: CountDownLatch 1. CountDownLatch 允许一个或多个线程等待其他线程完成操作。 2. CountDownLatch 可以替代 join 的作用,并提供了更丰富的用法。 3. CountDownLatch 的 countDown 方法,N 会减1;CountDownLatc 阅读全文
posted @ 2019-09-13 07:48 JMCui 阅读(668) 评论(0) 推荐(0)
摘要: 简介 原子(atomic)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为“不可被中断的一个或一系列操作”。 Java 在 JDK 1.5 中提供了 java.util.concurrent.atomic 包,这个包中的原子操作类提供了一种用法简单、性能高效、 阅读全文
posted @ 2019-09-08 23:51 JMCui 阅读(875) 评论(0) 推荐(0)
摘要: 一、介绍 使用 java8 lambda 表达式大半年了,一直都知道底层使用的是 Fork/Join 框架,今天终于有机会来学学 Fork/Join 框架了。 Fork/Join 框架是 Java 7 提供的一个用于并行执行任务的框架,是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大 阅读全文
posted @ 2019-09-06 13:22 JMCui 阅读(869) 评论(0) 推荐(1)
摘要: 介绍 阻塞队列(BlockingQueue)是指当队列满时,队列会阻塞插入元素的线程,直到队列不满;当队列空时,队列会阻塞获得元素的线程,直到队列变非空。阻塞队列就是生产者用来存放元素、消费者用来获取元素的容器。 当线程 插入/获取 动作由于队列 满/空 阻塞后,队列也提供了一些机制去处理,或抛出异 阅读全文
posted @ 2019-09-04 08:32 JMCui 阅读(1547) 评论(0) 推荐(3)
摘要: 一、介绍 ConcurrentLinkedQueue 是一个基于链接节点的无界线程安全队列,非阻塞,它采用先进先出的规则对节点进行排序,当我们添加一个元素的时候,它会添加到队列的尾部;当我们获取一个元素时,它会返回队列头部的元素。 ConcurrentLinkedQueue 采用非阻塞的方式实现线程 阅读全文
posted @ 2019-08-31 09:37 JMCui 阅读(622) 评论(0) 推荐(1)
摘要: 一、HashMap HashMap 是线程不安全的。 JDK 1.7 HashMap 采用数组 + 链表的数据结构,多线程背景下,在数组扩容的时候,存在 Entry 链死循环和数据丢失问题。 JDK 1.8 HashMap 采用数组 + 链表 + 红黑二叉树的数据结构,优化了 1.7 中数组扩容的方 阅读全文
posted @ 2019-08-28 21:34 JMCui 阅读(11919) 评论(1) 推荐(3)
摘要: 前言:《不止代码》是阿里首部技术经验精选集,涵盖了许多技术大牛对职业发展的看法,文笔简洁大方,通俗易懂,刚看前两章我就被深深吸引住了,是本值得推荐的书籍,适合碎片化时间阅读。书籍只有一百来页,却不建议一口气读完,最好读完每一章能有自己的思考感悟,再往下读。 Do more :做的更多,做的比你主管安 阅读全文
posted @ 2019-08-23 18:43 JMCui 阅读(474) 评论(0) 推荐(0)
摘要: 一、简介 所谓异步调用其实就是实现一个无需等待被调用函数的返回值而让操作继续运行的方法。在 Java 语言中,简单的讲就是另启一个线程来完成调用中的部分计算,使调用继续运行或返回,而不需要等待计算结果。但调用者仍需要取线程的计算结果。 JDK5新增了 Future 接口,用于描述一个异步计算的结果。 阅读全文
posted @ 2019-08-14 10:33 JMCui 阅读(2636) 评论(0) 推荐(2)
摘要: 一、简介 Spring Cloud Stream 是一个用来为微服务应用构建消息驱动能力的框架。 Spring Cloud Stream 为一些供应商的消息中间件产品(目前集成了 RabbitMQ 和 Kafka)提供了个性化的自动化配置实现,并且引入了发布/订阅、消费组以及消息分区这三个核心概念。 阅读全文
posted @ 2019-08-08 08:39 JMCui 阅读(1277) 评论(0) 推荐(3)
摘要: 一、概念 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理。 常用的限流算法有三种:计数器法、漏桶算法和令牌桶算法: 计数器法是限流算法中最简单的一种算法,我们维护一个时间窗口比如 100s,设定阈值 10 阅读全文
posted @ 2019-08-01 13:13 JMCui 阅读(2368) 评论(0) 推荐(1)
摘要: 一、Gateway 和 Zuul 的区别 Zuul 基于servlet 2.5 (works with 3.x),使用阻塞API。它不支持任何长期的连接,如websocket。 Gateway建立在Spring Framework 5,Project Reactor 和Spring Boot 2 上 阅读全文
posted @ 2019-07-28 22:24 JMCui 阅读(2315) 评论(0) 推荐(1)
摘要: 一、简介 Spring Cloud Confg 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持,它分为服务端与客户端两个部分。其中服务端也称为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的 阅读全文
posted @ 2019-07-26 22:38 JMCui 阅读(1873) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 19 下一页