Java多线程 线程池的原理,为什么要创建线程池? 线程的生命周期,什么时候会出现僵死进程; 什么实现线程安全,如何实现线程安全; 创建线程池有哪几个核心参数?如何合理配置线程池的大小? synchronized、volatile区别、synchronized锁粒度、模拟死锁场景、原子性与可见性; ...
分类:
其他好文 时间:
2020-11-21 11:48:56
阅读次数:
4
目前很多公司业务已经上云,使用了大量的云主机。当前大多数云厂商的云主机公网都是采用的eip,也就是内网和外网使用的同一张网卡,所以流量全部经过的同一个网卡。然而这就面临一个问题,如何将公网和私网的流量分开统计呢?特别是当机器流量异常的时候,如何快速的判断流量是来自公网还是私网。当然云厂商一般也提供了eip的监控,然而很多公司也有一套自己的监控,对于自建监控如何实现,这就值得思考了。本文将采用pyt
分类:
编程语言 时间:
2020-11-20 11:19:41
阅读次数:
6
漫画:如何实现大整数相乘?(下)如何用程序实现大整数相乘呢?在上一篇文章漫画:如何实现大整数相乘?(上)修订版当中,我们介绍了两种思路:1.像列竖式一样,把两整数按位依次相乘这个思路的时间复杂度是O(n^2)。2.利用分治法,把每个大整数分成高位和低位两部分,转化成四个较小的乘积。这个思路的时间复杂度同样是O(n^2)。那么,有什么样的优化方案,可以使时间复杂度优于O(n^2)呢?我们今天一起来研
分类:
其他好文 时间:
2020-11-19 12:08:30
阅读次数:
7
漫画:如何实现大整数相加?(修订版)本周一发布的漫画,存在一些细节上的问题,在这里做出如下修改:1.修改了代码中进位判断条件的bug,优化了部分代码的可读性。2.增加了JDK工具类BigInteger和BigDecimal的说明。3.补充了一个优化方法,即把大整数拆分成数组时,按十进制每9位拆分,而非每1位拆分。非常感谢大家提出的宝贵意见。有了你们的建议,才有了小灰的进步。—————第二天————
分类:
其他好文 时间:
2020-11-19 12:08:05
阅读次数:
5
2017精选索引,入选规则为:截止至2017年12月28日文章截止到发文,阅读1W+【架构必备】《互联网架构如何实现“高并发”》4W+《TCP接入层的负载均衡、高可用、扩展性架构设计》2.2W+《配置中心架构设计演进》1.7W+《跨公网调用的大坑与架构优化》1.4W+《DNS在架构设计中的巧用》1.9W+《消息如何在网络上安全传输》1.2W+《10W定时任务,如何高效触发》2.9W+《工作线程究竟
分类:
其他好文 时间:
2020-11-18 12:18:05
阅读次数:
2
有两种方式:1). 实现Cloneable接口并重写Object类中的clone()方法;2). 实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆,代码如下。 public class MyUtil { private MyUtil() { throw n ...
分类:
其他好文 时间:
2020-11-17 12:41:19
阅读次数:
6
在《消息顺序性为何这么难?》中,介绍了一种为了保证“所有群友展示的群消息时序都是一致的”所使用的“ID串行化”的方法:让同一个群gid的所有消息落在同一台服务器上处理。ID串行化是如何实现的呢?互联网高可用常见分层架构客户端,反向代理层,接入层,服务层,存储层,这是互联网常见的高可用分层架构。画外音:这个图用过好多次。这里的“服务层”至关重要,ID串行化保证的是,同一个群gid的消息落在同一个服务
分类:
其他好文 时间:
2020-11-16 13:56:56
阅读次数:
7
前情提要:《ServiceMesh究竟解决什么问题?》《Istio究竟是什么?》《Istio分层架构设计?》Istio架构体系中,流控(TrafficManagement)虽然是数据平面的EnvoyProxy实施的,但整个架构的核心其实在于控制平面的Pilot。灰度发布的过程在《Istio,灰度发布》一文中已经有过描述,今天重点说说Pilot和Envoy的交互流程与内部结构。一、通用交互流程图示:
分类:
其他好文 时间:
2020-11-16 13:42:08
阅读次数:
5
前言java从零手写实现redis(一)如何实现固定大小的缓存?java从零手写实现redis(三)redisexpire过期原理java从零手写实现redis(三)内存数据如何重启不丢失?java从零手写实现redis(四)添加监听器java从零手写实现redis(五)过期策略的另一种实现思路java从零手写实现redis(六)AOF持久化原理详解及实现我们前面简单实现了redis的几个特性,j
分类:
编程语言 时间:
2020-11-11 16:16:40
阅读次数:
11
《并发扣款,如何保证数据的一致性?》一文的核心观点是:使用CAS乐观锁,在写回余额时加上旧余额的比对,可以在不影响吞吐量的前提下,保证余额的一致性。文章非常多朋友留言问,能不能把余额放到reids里,利用redis的事务性来扣减余额。今天,就这个问题简单的说一下。redis如何实现事务性?本质也是乐观锁。在redis客户端执行:$money=GETkey$money=$money-$diffSET
分类:
其他好文 时间:
2020-11-10 11:31:32
阅读次数:
8