首页
学习
活动
专区
工具
TVP
发布

架构探险之道

专栏作者
93
文章
132100
阅读量
15
订阅数
站在架构的角度思考线程池的设计和原理
默认情况下,即使核心线程最初只是在新任务需要时才创建和启动的,也可以使用方法 prestartCoreThread()或 prestartAllCoreThreads() 对其进行动态重写。
架构探险之道
2023-03-04
3940
并发编程 之 Fork/Join 框架
ForkJoin框架是从jdk1.7中引入的新特性,它同ThreadPoolExecutor一样,也实现了Executor和ExecutorService接口。它使用了一个无限队列来保存需要执行的任务,而线程的数量则是通过构造函数传入,如果没有向构造函数中传入指定的线程数量,那么当前计算机可用的CPU数量会被设置为线程数量作为默认值。
架构探险之道
2023-03-04
2900
线程并发带来的安全性问题 之 同步锁(一)
在下面的案例中,演示了两个线程分别去去调用 demo.incr 方法来对 i 这个变量进行叠加,预期结果 应该是20000,但是实际结果却是小于等于20000的值。
架构探险之道
2023-03-04
2210
Rx Java 异步编程框架
在很多软件编程任务中,或多或少你都会期望你写的代码能按照编写的顺序,一次一个的顺序执行和完成。但是在ReactiveX中,很多指令可能是并行执行的,之后他们的执行结果才会被观察者捕获,顺序是不确定的。为达到这个目的,你定义一种获取和变换数据的机制,而不是调用一个方法。在这种机制下,存在一个可观察对象(Observable),观察者(Observer)订阅(Subscribe)它,当数据就绪时,之前定义的机制就会分发数据给一直处于等待状态的观察者哨兵。
架构探险之道
2023-03-04
2.9K0
Redis 缓存中间件
一个网站演变的过程中,用户量的增加引起了并发量提高,如果不做处理,则频繁的查询数据库,结果是页面显示的慢,服务器、数据库不堪重负。如果网站页面所展示的数据的更新不是特别频繁,想提高页面显示的速度,减轻服务器的负担,此时应该考虑使用缓存。
架构探险之道
2023-03-04
6490
JVM 面试深入理解内存模型和垃圾回收(二)
https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5 >>>
架构探险之道
2023-03-04
3860
项目中的全局缓存导致了内存泄露?
每种编程语言都有自己操作内存中元素的方式,例如在 C 和 C++ 里是通过指针,而在 Java 中则是通过“引用”。在 Java 中一切都被视为了对象,但是我们操作的标识符实际上是对象的一个引用(reference)。
架构探险之道
2020-09-18
6690
RSA 敏感数据加解密方案
RSA密码是1978年美国麻省理工学院三位密码学者R.L.Rivest、A.Shamir和L.Adleman提出的一种基于大合数因子分解困难性的公开密钥密码。由于RSA密码既可用于加密,又可用于数字签名,通俗易懂,因此RSA密码已成为目前应用最广泛的公开密钥密码。RSA算法是现今使用最广泛的公钥密码算法,也是号称地球上最安全的加密算法。在了解RSA算法之前,先熟悉下几个术语,根据密钥的使用方法,可以将密码分为对称密码和公钥密码。
架构探险之道
2020-08-17
1.1K0
了解多线程以及如何进行并发编程?
硬件层面软件层面并发和并行JAVA中的线程线程的基础源码分析线程的启动线程的中断异步并发异步 Future异步Callback异步编排 CompletableFuture小结更多
架构探险之道
2020-07-07
7180
​[JDK] HashMap 原理总算整明白了
哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而 HashMap 的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对 Java 集合框架中的 HashMap,就 JDK7、JDK8 的源码实现进行分析。
架构探险之道
2020-03-18
4330
[Java] JAVA IO操作
一个优秀的程序必然离不开IO操作,不论是读写网络数据还是本地文件,都必须有扎实的IO操作技巧。
架构探险之道
2020-02-25
5700
[设计模式] 单例模式
这种方式能达到双检锁方式一样的功效,但实现更简单。对静态域使用延迟初始化,应使用这种方式而不是双检锁方式。这种方式只适用于静态域的情况,双检锁方式可在实例域需要延迟初始化时使用。
架构探险之道
2019-08-20
4060
[设计模式] 策略模式
假设我们现在需要定义一个手机的基本能力,call和message,分别表示通话和短信能力。来给客户演示不同手机的能力区别,以达到推销赞助商手机的功能。
架构探险之道
2019-08-06
6960
Google Guava 集合工具类
>注:懒视图意味着如果还没访问到某个iterable中的元素,则不会对它进行串联操作
架构探险之道
2019-07-25
1K0
[Java] Java 并发包中并发原理剖析之ConcurrentLinkedQueue
ConcurrentLinkedQueue内部的队列使用单向链表方式实现,其中有两个volatile类型的Node节点分别用来存放队列的首、尾节点。从下面的无参构造函数可知,默认的头、尾节点都是指向item为null的哨兵节点。新元素会被插入队列末尾,出队时从队列头部获取一个元素。
架构探险之道
2019-07-25
3940
[Gradle] Gradle 聚合模块配置
此处主要为了过滤容器模块中的插件配置,容器模块的主要用来管理下属部分的模块,无需添加依赖和插件 spring-security-sso、common-dependencies都是容器模块
架构探险之道
2019-07-25
1.8K0
[Spring Boot] 从零开始搭建个人网站
利用 Nginx 和 Spring Boot 微服务模块实现前后端分离式部署的个人网站搭建。
架构探险之道
2019-07-25
4.8K2
​[JUnit] 基于JUnit从零开始认识单元测试
如果你听说过测试驱动开发(TDD:Test-Driven Development),单元测试就不陌生。单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。比如对函数abs(),我们可以编写出以下几个测试用例:
架构探险之道
2019-07-25
7240
[JDK] 多线程高并发探秘之“锁”
自旋锁是采用让当前线程不停地的在循环体内执行实现的,当循环的条件被其他线程改变时 才能进入临界区。
架构探险之道
2019-07-25
6380
[JDK] SynchronousQueue 源码阅读【2】
代码实现里的Dual Queue或Stack内部是用链表LinkedList来实现的,其节点状态为以下三种状态:
架构探险之道
2019-07-25
5330
点击加载更多
社区活动
Python精品学习库
代码在线跑,知识轻松学
【玩转EdgeOne】征文进行中
限时免费体验,发文即有奖~
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·干货材料·成员作品·最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档