摘要: 为什么要用消息中间件 解耦、异步、削峰限流 解耦:如上图所示,如果用户注册的"发短信"功能代码和用户数据写表的代码写在一个类或者方法里,就容易把发短信的功能作死,注册和发短信耦合度就太高了,不灵活!就像勺子和叉子功能不同,厂家也是分开生产的,大概不会有勺子和叉子连在一起的设计吧。 异步:如果耦合度太 阅读全文
posted @ 2020-10-30 00:12 陈旭园 阅读(29) 评论(0) 推荐(0)
摘要: 一、计算机系统概述 一个完整的计算机系统包括:硬件系统和软件系统,如下图所示 硬件:计算机装置,即物理设备。 硬件系统:组成计算机系统的各种物理设备的总称。是计算机完成工作的物质基础,是软件建立和依托的基础。 软件:某种计算机语言编写的程序、数据和相关文档的集合。指示计算机完成特定工作任务,是计算机 阅读全文
posted @ 2020-10-08 23:32 陈旭园 阅读(30) 评论(0) 推荐(0)
摘要: 创建账户是不可能创建账户的。只有偷个账号来用: http://bugmenot.com/view/oracle.com 阅读全文
posted @ 2020-06-03 22:26 陈旭园 阅读(7) 评论(0) 推荐(0)
摘要: 回顾RPC框架 节点角色说明Provider提供远程服务的服务提供方Consumer调用远程服务的服务消费方Registry服务注册与发现的注册中心 Dubbo最重要的三个角色就是服务提供方、服务消费方、注册中心。 下面我们通过Java原生API实现远程调用,不使用任何第三方框架! 服务提供方 pa 阅读全文
posted @ 2020-05-17 21:55 陈旭园 阅读(23) 评论(0) 推荐(0)
摘要: 1、前端项目,npm run build 生成dist文件夹 2、后台配置 @Configuration @EnableWebMvc public class WebMvcConfig implements WebMvcConfigurer { @Override public void addVi 阅读全文
posted @ 2020-03-31 00:04 陈旭园 阅读(73) 评论(0) 推荐(0)
摘要: ThreadLocal是什么 ThreadLocal提供了线程局部变量,由该类保存的变量,会分开线程,不同的线程会保存不同的变量副本。 import java.util.HashMap; import java.util.Map; public class ThreadLocalTest { Thr 阅读全文
posted @ 2020-02-05 23:56 陈旭园 阅读(13) 评论(0) 推荐(0)
摘要: Java多线程与高并发七本来想写ThreadLocal源码的,实在是看底层代码看不动了!先搁置吧。Java多线程与高并发八给同学们分享下面试中常考的线程池的七大参数! 为什么要用线程池 防止频繁创建和销毁线程,让每个线程可以多次使用,防止消耗过多内存,所以我们使用线程池。 为什么不用JDK自带线程池 阅读全文
posted @ 2020-01-23 00:25 陈旭园 阅读(24) 评论(0) 推荐(0)
摘要: volatile关键字,开发中一般不用,主要用途就是用来面试造火箭,那么它在代码中的真正作用是啥呢?? 上一篇博客说到,对于现代多核心计算机而言,在多线程的情况下,如果一个变量没有加volatile修饰,可能出现线程间各自拷贝主内存的变量值到自己独有的线程CPU缓存中对数据做各种操作,导致变量的变化 阅读全文
posted @ 2020-01-23 00:25 陈旭园 阅读(16) 评论(0) 推荐(0)
摘要: 为了实现各种线程的操作,比如线程阻塞、阻塞恢复,JDK提供了大量模型来操纵线程运行。《Java多线程与高并发五(常用并发工具类)》给大家伙儿分享下JDK中常见的并发工具类。 说一道面试题 实现一个容器,提供add,size方法,两个线程,线程一添加十个元素到容器中,线程二监控容器中元素的个数,当线程 阅读全文
posted @ 2019-11-09 00:44 陈旭园 阅读(27) 评论(0) 推荐(0)
摘要: JMM-Java内存模型 Java虚拟机把Java的内存分为thread stacks和heap,在理解多线程的时候,这种粗糙的分法已足够。 如图所示,该图有如下含义: 1、每个线程都有自己的thread stack,意味着只要是存在于thread stack的变量都是线程独有,别的线程是不能访问的 阅读全文
posted @ 2019-10-29 17:07 陈旭园 阅读(20) 评论(0) 推荐(0)