首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
Java
订阅
陈明新
更多收藏集
微信扫码分享
微信
新浪微博
QQ
65篇文章 · 0订阅
为什么我墙裂建议大家使用枚举来实现单例。
关于单例模式,我的博客中有很多文章介绍过。作为23种设计模式中最为常用的设计模式,单例模式并没有想象的那么简单。因为在设计单例的时候要考虑很多问题,比如线程安全问题、序列化对单例的破坏等。 如果你对单例不是很了解,或者对于单例的线程安全问题以及序列化会破坏单例等问题不是很清楚,…
从CAP理论到Paxos算法
关于分布式系统有一个经典的CAP理论, CAP理论的核心思想是任何基于网络的数据共享系统最多只能满足数据一致性(Consistency)、可用性(Availability)和网络分区容忍(Partition Tolerance)三个特性中的两个。 Consistency 一致性…
nginx 这一篇就够了
server_name .myserver.com www.myserver. myserver2.*; # 使用通配符 在这个过程中,需要保证服务端给浏览器的公钥不是假冒的。证明服务端公钥信息的机构是 CA(数字认证中心) 访问站点 http://location/c 访问的…
【架构设计之道】这一波优雅的操作,会把你的中间件系统架构带到另一个Level【石杉的架构笔记】
这个中间件系统的本质是希望能够用分布式的方式来处理一些数据,但是具体的作用涉及到核心技术,所以这里不能直接说明。 但是他的核心思想,就是把数据分发到很多台机器上来处理,然后需要有一台机器来控制N多台机器的分布式处理,大概如下图所示。 那么既然是分布式的处理,就肯定涉及到在Mas…
史上最透彻的 RabbitMQ 可靠消息传输实战
保证在服务器重启的时候可以保持不丢失相关信息,重点解决服务器的异常崩溃而导致的消息丢失问题。但是,将所有的消息都设置为持久化,会严重影响 RabbitMQ 的性能,写入硬盘的速度比写入内存的速度慢的不只一点点。
Semaphore、CountDownLatch 的实现原理浅析
Semaphore(信号量)它通过 new Semaphore(permits) 来进行创建,permits 表示同一时间可以执行多少个线程。 使用 acquire 来获得许可,通过 release 来释放许可。在同一时间只允许 permits 个线程同时运行。 可以看到输出结…
Java并发设计模式--不可变模式(immutable)
不可变,顾名思义,就是对象创建之后就不能够变化嘛!更具体地说,就是对象创建之后它的属性值不能够发生变化!所有对原对象的操作都会返回原对象的拷贝。那么在java中怎么做到这一点呢?答案就是使用final关键字。下面我将讲讲如何设计出一个`immutable``对象。 可见结果发生…
自己用 Netty 实现一个简单的 RPC
创建 maven 项目,导入 Netty 4.1.16。 众所周知,dubbo 底层使用了 Netty 作为网络通讯框架,而 Netty 的高性能我们之前也分析过源码,对他也算还是比较了解了。今天我们就自己用 Netty 实现一个简单的 RPC 框架。 1. 需求 模仿 dub…
Lock 中的 AQS、独占锁、重入锁、读锁、写锁、Condition 源码原理分析
上述逻辑都是整理源码罗列出来的逻辑和我们之前的独占锁的区别主要在于,同一个线程可以多次获取锁 state 会依次增加代表了重入的次数。
从偏向锁是如何升级到重量级锁的
在 jdk1.6 之前我们会说 synchronized 是个重量级锁,在此之后 JVM 对其做了很多的优化,之后使用 synchronized 线程在获取锁的时候根据竞争的状态可以是偏向锁、轻量级锁和重量级锁。 而在关于锁的技术中,又出现了一些比如锁粗化、锁消除、自旋锁、自适…