随笔分类 -  并发

JUC和线程
摘要:Outline of Netty In distributed architectures, network communication is of paramount importance. Regardless of how sophisticated the architecture is, 阅读全文
posted @ 2022-03-14 23:28 UpGx 阅读(78) 评论(0) 推荐(0)
摘要:分布式存储-Redis实战&常见问题解决 前面讲了一些Redis的使用场景和数据类型,本章会聊到: 一个抽奖的例子来阐述redis如何被应用去解决实际问题(代码有点多,不适合放在博文中,如需请留言,我可以发送),并且会使用到前面并发模块聊的CountDownLatch和springBoot中的事件去 阅读全文
posted @ 2021-08-01 18:29 UpGx 阅读(303) 评论(0) 推荐(1)
摘要:高并发(outline&factors) 本篇和大家聊聊我理解的并发中我们需要学习的东西,我们之前的博文已经写了 并发编程(异步的方式提高程序的整体性能) 分布式消息中间件(部分) 后续我的想法是聊: 分布式存储(优化IO部分) 分布式架构(服务治理等->架构层面的优化) 性能优化(Jvm、Tomc 阅读全文
posted @ 2021-07-21 22:48 UpGx 阅读(241) 评论(0) 推荐(0)
摘要:高可用&高并发(从架构&代码层面出发) 最近想缕缕互联网架构方面的知识,所以这里先宏观的看看关于互联网架构下的问题和相关实现,分布式架构中,我们知道最重要的就是高可用,和高并发,所以我会从这里着手。 高可用 【架构可用性】: 所谓高可用就是我们在整个架构的过程中不能存在单点故障:(如果是我的服务节点 阅读全文
posted @ 2021-07-20 14:42 UpGx 阅读(463) 评论(0) 推荐(0)
摘要:并发编程-FutureTask&CompletableFuture 今天会聊到【Future/callable】并且分析他们的原理,同时也会聊到【CompletableFuture】的使用和原理,在这一章中,我们聊并发就到此结束,下面我可能会去看一下中间件的源码和实现,然后之后咱们接着聊关于中间件的 阅读全文
posted @ 2021-07-03 13:49 UpGx 阅读(400) 评论(0) 推荐(0)
摘要:并发编程-线程池的设计原理&使用 这一篇,我们来聊一聊线程池,和他的设计原理,以及一些关键参数和如何动态设计线程参数,很多东西咱们在之前的文章中已经讨论过,这一篇就相对轻松点,run。 线程池 创建线程遇见的麻烦 线程的频繁创建和销毁需要消耗cpu的资源 线程数量越多,cpu的资源的开销就越大 如果 阅读全文
posted @ 2021-06-30 23:20 UpGx 阅读(216) 评论(2) 推荐(0)
摘要:并发编程-ConcurrentHashMap(二) 昨天说到扩容前面的准备工作,和一系列的判断,其中我觉得设计精妙的就是他的那个【高低位扩容】,精巧的使用了二进制,从某种层面讲,提升了性能,因为二进制的那个变量的存储,就相同于一个容器,如果不使用它,那肯定要new出一个容器进行存储,这就会占用内存。 阅读全文
posted @ 2021-06-29 14:58 UpGx 阅读(61) 评论(0) 推荐(0)
摘要:并发编程-ConcurrentHashMap(一) 本篇来聊聊1.8的ConcurrentHashMap(CHS),关于它的一些设计思想(高低位扩容、链式寻址法、链表 so on),数据结构,和源码试实现行剖析,本篇会讲到前面的一部分代码分析,包括(延迟初始化、阈值判断扩容、以及高低位扩容) 为什么 阅读全文
posted @ 2021-06-28 14:53 UpGx 阅读(115) 评论(2) 推荐(1)
摘要:并发编程-ThreadLocal&ForkJoinPool(使用以及原理分析) 本章只要聊聊两个东西,这里会给出如何使用他们,并且分析各自的源码以及原理。 【ThreadLocal】:在指定线程中存储数据,数据存储后只有指定线程可以获得 【ForkJoinpool】:实际上他类似于【hadoop】他 阅读全文
posted @ 2021-06-26 18:24 UpGx 阅读(696) 评论(0) 推荐(0)
摘要:并发编程-阻塞队列&JUC常用工具 本章主要和大家聊聊之前的阻塞队列,并且聊聊他如何使用,以及JUC中常用的一些工具,例如【CountDownLatch】、【Semaphore】、【CyclicBarrier】这些都是控制线程的一些工具,我们会聊聊他们如何使用,以及实现原理。 阻塞队列(之前聊过一下 阅读全文
posted @ 2021-06-21 22:55 UpGx 阅读(137) 评论(0) 推荐(0)
摘要:并发编程-Condition源码分析&基于Condition实现阻塞队列 上一篇说猜测了condition的实现原理,本篇对condition源码进行剖析,并且来使用condition实现一个阻塞队列,同时聊聊有哪些东西的底层使用了condition。So Run。。。 上篇回顾 主要是这两个方法 阅读全文
posted @ 2021-06-17 23:41 UpGx 阅读(197) 评论(0) 推荐(0)
摘要:并发编程-ReentrantLock锁源码分析&Condition设计 上一篇我们分析了Lock锁的实现,这一篇我们来着眼于他的底层实现,以及来分析Condition,并且对比他和wait()以及notify()。 Lock源码分析 首先Lock下面有ReentrantLock的实现,在Reentr 阅读全文
posted @ 2021-06-13 11:06 UpGx 阅读(115) 评论(0) 推荐(0)
摘要:并发编程-JMM&ReentrantLock锁以及原理 JMM(Java Memory Model(Java内存模型)):我们都明白java是一个一次编译多处运行的语言,然而在不同的系统架构中拥有不同的内存模型,java是一个跨平台的虚拟系统,所以他有制定了自己的内存模型,内存模型描述了程序中各个变 阅读全文
posted @ 2021-06-06 14:53 UpGx 阅读(229) 评论(2) 推荐(0)
摘要:并发编程-(volatile)可见性&有序性 【可见性】:就是两个线程对同一个变量进行修改线程a修改后,线程b没有读取到修改后的数据,类似于数据库中的脏读。 【有序性】:在java内存模型中,允许编译器和处理器对指令进行重新排序,在单线程的时候不影响,但是在多线程的时候,就会影响执行结果的正确性。 阅读全文
posted @ 2021-06-01 17:48 UpGx 阅读(313) 评论(0) 推荐(0)
摘要:并发编程-原子性 我们都清楚当多个线程去同时做一件事情的时候,我们需要考虑原子性、可见性、和有序性这几个问题,本章主要说原子性,以下是阐述内容 原子性:主要用原子性问题进行展开讨论 同步锁(synchronize):使用同步锁解决问题 MarkWord对象头:锁的状态存在哪里 synchronize 阅读全文
posted @ 2021-05-24 13:34 UpGx 阅读(362) 评论(0) 推荐(0)
摘要:并发的起源和价值 本篇从为什么使用高并发,以及高并发带给我们什么好处展开进行阐述,说到高并发就不能不说线程,所以会穿插这一些线程的demo。这里只是进行浅谈,之后会进行深入的讨论,so began. 并发 【高并发】:当前系统能够同时承载的并发数,例如,我们打开一个前端页面,这个前端页面会渲染很多数 阅读全文
posted @ 2021-05-19 20:56 UpGx 阅读(199) 评论(1) 推荐(1)