代码改变世界

Netty的对象池实现——Recycler源码浅析

2021-02-11 01:08 by CeddieCoding, 235 阅读, 0 推荐, 收藏,
摘要:Netty中带有"Pooled"前缀的buffer,创建出来后是可以被循环利用的,以达到一个对象池的效果,避免了频繁地GC。而这个对象池的核心,就是Recycler。 Recycler Recycler是一个抽象类,在Netty中有一个匿名的实现类: private static final cla 阅读全文

关于volatile的探索

2020-12-27 11:11 by CeddieCoding, 84 阅读, 0 推荐, 收藏,
摘要:在阅读SynchronousQueue源码时,发现有这么一段注释: // Note: item and mode fields don't need to be volatile// since they are always written before, and read after,// ot 阅读全文

Netty学习笔记——Server端初始化

2019-11-03 21:08 by CeddieCoding, 499 阅读, 0 推荐, 收藏,
摘要:这段时间一直在学习Netty,在通过《Netty实战》一书学习了一些Netty的基础知识之后,便开始写一些简单的Server-Client交互Demo。一个Server端的代码大致如下: 其中ServerBootStrap相当于Server端的引导,由其group方法指定了事件处理的线程组,每个gr 阅读全文

mysql-5.7.27-winx64免安装版配置

2019-09-25 08:53 by CeddieCoding, 1008 阅读, 0 推荐, 收藏,
摘要:1.将下载的文件解压到自定义位置: D:\Program Files\mysql-5.7.27-winx64 2.在解压目录下,新建my.ini文件,内容如下: [mysql]default-character-set=utf8[mysqld]port=3306basedir="D:\Program 阅读全文

关于二分法的探索

2019-02-15 23:11 by CeddieCoding, 359 阅读, 0 推荐, 收藏,
摘要:二分法一直被认为是最“简单”的排序方法之一,它充分地利用了数组递增性质,许多二分法的变形问题也非常经典。 1.二分 二分法最简单的实现如下: /** * binary search, assure that all inputs are valid! */ int binary_search(int 阅读全文

深入理解计算及系统 Chapter7 学习笔记

2018-11-17 17:41 by CeddieCoding, 329 阅读, 0 推荐, 收藏,
摘要:Chapter7 链接 1.为了构造可执行文件,链接器必须完成两个主要任务: (1)符号解析:目的是将每个符号引用正好和一个符号定义关联起来 (2)重定位:编译期和汇编器生成从地址0开始的代码和数据节,通过把每个符号定义与一个内存位置关联起来,修改所有对这些符号的引用,使得它们指向这个内存位置 2. 阅读全文

c/c++ review

2018-09-26 21:52 by CeddieCoding, 272 阅读, 0 推荐, 收藏,
摘要:公司的代码实际上是通过某个程序从java转成c的,而我看的部分,在java上实际是用来模拟跑测试用例的,so,必须得复习复习c/c++了,不断补充吧 1.typedef 这真是个神器,尤其是用在定义函数时,我们可以这样用: 我们定义了三个类型,其中: (1)fun_ptr为一个指针,指向一个函数,其 阅读全文

深入理解计算及系统 Chapter2 学习笔记

2018-08-30 22:19 by CeddieCoding, 285 阅读, 0 推荐, 收藏,
摘要:Chapter2 信息的表示和处理 1.将一个十进制的数字x转换为n进制,可以用n反复除x,得到商q和一个余数r,然后用这个r作为最低位数字,反复这个过程直到商为0,则可以得到n进制的表示,其原理为: x = a0nm + a1nm-1 +···+ amn0 2.每台计算机都有一个字长(word s 阅读全文

深入理解计算及系统 Chapter1 学习笔记

2018-08-29 22:49 by CeddieCoding, 213 阅读, 0 推荐, 收藏,
摘要:为了巩固基础,重新将CSAPP翻了出来,准备在温习的过程中做好学习笔记。 Chapter 1 计算机系统漫游 1.GCC编译器驱动程序读取源程序文件,并把它翻译成一个可执行目标文件。这个翻译过程可分为四个阶段完成: (1)预处理:读取头文件内容并直接插入到程序文本中 (2)编 译:翻译成汇编语言程序 阅读全文

Java Concurrency in Practice 4.3-4.5相关问题及理解

2018-05-10 19:44 by CeddieCoding, 234 阅读, 0 推荐, 收藏,
摘要:1.线程安全性的委托 委托意味着,将线程安全性委托给自己的线程安全组件,但请一定注意,即便组件都是线程安全的,也不能保证类是线程安全的!上篇博文提到了“车辆追踪”的时效性问题,那么如何解决?既然问题是返回的结果为locations的一个deepcopy,那么解决办法当然是发布一个线程安全的Map对象 阅读全文