CAS问题结合AtomicInteger分析 发表于 2020-08-25 | 分类于 多线程 | 字数统计: 1.3k 字 | 阅读时长 ≈ 4 分钟 前言公司业务渐渐要写多线程模块了,因为自己对多线程这块并不是非常了解,所以在bilibili上学习马士兵老师的高并发课程,以下也是听完第一节课后做的笔记。 CAS问题引入在多线程环境下当我们使用AtmoicInteger中getAndIncrement()方法的当时候发现我们不需要加锁。他的源码其 ... 阅读全文 »
状态模式实现简单英雄联盟抽皮肤案例 发表于 2020-08-16 | 分类于 设计模式 | 字数统计: 2.6k 字 | 阅读时长 ≈ 11 分钟 前言在重构这本书中,我接触到了状态模式,重构中把State/Strategy两个模式放在一起说,当时我也不太理解,因为光看类图,这两个模式真的差别不大。之后我会在写一篇博客主要讲诉这两个设计模式的区别。在这篇博客中我学习了一遍状态模式,为了方便理解,写了一个简单的英雄联盟抽皮肤的小案例。案例代码我会 ... 阅读全文 »
模版方法模式见解与案例 发表于 2020-08-12 | 分类于 设计模式 | 字数统计: 1.1k 字 | 阅读时长 ≈ 3 分钟 前言最近一直在看《重构–改善既有的代码设计》这本书,书中第三章的第一小节,在讲解Duplicated Code(重复代码)的时候,阐述了一种引起重复代码的情况。 重复代码的另一种常见情况就是“两个互为兄弟的子类内含有相同的表达式”。要避免这种情况需要对两个类使用Extract Method(110 ... 阅读全文 »
简单Mockito捕获mock对象方法的入参 发表于 2020-08-04 | 分类于 单元测试 | 字数统计: 662 字 | 阅读时长 ≈ 2 分钟 前言在实际项目中写单元测试的过程中,我们会发现需要测试的类有很多依赖,这些依赖又会有依赖,导致想要完成单元测试是一件很难的事情,为了解决这些问题,我们引入了Mock的概念,简单的说就是模拟这些资源或者依赖。 Mock捕获参数的情景我们在被mock的方法调用参数明确的情况下,可以无需捕获参数,但是有些 ... 阅读全文 »
策略模式实现简单校验案例 发表于 2020-07-20 | 分类于 设计模式 | 字数统计: 1.1k 字 | 阅读时长 ≈ 4 分钟 概述 策略模式(Strategy Pattern)定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变化独立于使用算法的用户。 本文展示了用策略模式实现了简单的登录校验,我会在本文最后附上本次 ... 阅读全文 »
数据库批量新增及更新效率测试 发表于 2020-07-05 | 分类于 数据库 | 字数统计: 2.9k 字 | 阅读时长 ≈ 13 分钟 前言由于最近公司业务需求,我们需要重新开发一套系统,其中需求就是需要高TPS,高性能数据库读写能力,由此我测试了Mysql,JDBC、MyBatis并且集成Kafka来做一个性能测试。由于在框架测试上的代码不能公开,这里我自己重新快速写了个Demo,具体代码和完整的测试文档我也会上传至我的Githu ... 阅读全文 »
CentOS定时任务 发表于 2020-06-30 | 分类于 Linux | 字数统计: 648 字 | 阅读时长 ≈ 2 分钟 概述crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。通常,crontab储存的指令被守护进程激活, crond常常 ... 阅读全文 »
同步阻塞IO---BIO 发表于 2020-06-21 | 分类于 JAVA | 字数统计: 985 字 | 阅读时长 ≈ 4 分钟 概述JavaBIO:同步阻塞(传统阻塞型),服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,可以通过线程池机制改善(实现多个客户连接服务器) BIO方式适用于连接数目比较小且固定的架构,这种方式对服务器资源要求比 ... 阅读全文 »
2020-06-21 发表于 2020-06-21 | 分类于 随笔 | 字数统计: 111 字 | 阅读时长 ≈ 1 分钟 这天我们说了二十句话十年来的五分之一剩下没有几个十年了,我和他此后余生还会突然聊起天来么 想到这里我就打开了他的朋友圈。只有孤零零的一条,发于一年前的今日是我入围某个文学奖的新闻无人点赞。没有任何共同朋友因为他是我的父亲 –文珍《鲸鱼破冰》 阅读全文 »
网络通信框架(2)---Mina 发表于 2020-06-20 | 分类于 互联网架构 | 字数统计: 17.9k 字 | 阅读时长 ≈ 75 分钟 Mina案例源码 简单的TCPServer第一步:编写IoService编写IoService,按照上面的执行流程,我们首先需要编写IoService,IoService 本身既是服务端,又是客户端,我们这里编写服务端,所以使用IoAcceptor 实现,由于IoAcceptor 是与协议无关的,因 ... 阅读全文 »