摘要: 为了达到最大性能,基于分代管理和回收算法,结合回收的时机,JVM实现垃圾回收器了:串行回收、并行回收、并发标记回收(CMS)和垃圾优先回收。 1.串行回收 使用单线程进行垃圾回收,在回收的时候Mutator需要STW。新生代通常采用复制算法,老生代通常采用标记压缩算法。 复制算法: 复制算法的实现也 阅读全文
posted @ 2020-05-23 00:35 Moonshoterr 阅读(189) 评论(0) 推荐(0) 编辑
摘要: gRPC的技术栈 (1)远程服务提供者需要以某种形式提供服务调用相关的信息,包括但不限于服务接口定义、数据结构,以及中间态的服务定义文件,例如gRPC 的 proto 文件、WS-RPC 的WSDL文件定义,甚至也可以是服务端的接口说明文档。服务调用者需要通过一定的途径获取远程服务调用相关信息,例如 阅读全文
posted @ 2020-05-21 18:38 Moonshoterr 阅读(6251) 评论(1) 推荐(0) 编辑
摘要: 加锁是为了避免在并发环境下,同时访问共享资源产生的风险问题。那么,在并发环境下,是否必须加锁?答案是否定的。并非所有的并发都需要加锁。适当地降低锁的粒度,甚至采用无锁化的设计,更能提升并发能力。 比如,JDK中的ConcurrentHashMap,巧妙地采用了桶粒度的锁,避免了put和get中对整个 阅读全文
posted @ 2020-05-20 20:19 Moonshoterr 阅读(1190) 评论(0) 推荐(1) 编辑
摘要: 真正的零拷贝有两种方式: mmap+write Sendfile mmap 是一种内存映射文件的方法,即将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一对应关系。 这样就可以省掉原来内核 Read 缓冲区 Copy 数据到用户缓冲区,但是还是需要内核 阅读全文
posted @ 2020-05-20 17:49 Moonshoterr 阅读(925) 评论(0) 推荐(0) 编辑
摘要: 记我在知乎的回答 首先,EventLoop的原型就是Reactor模型,而Reactor模型就是一种线程模型,事实上,传统线程模型就是和阻塞IO模型一样,一个连接一个线程,你可以想象这么一个场景,当Client发起请求后,每个请求分别对应一个处理线程,该线程创建一个Handler对象,Handler 阅读全文
posted @ 2020-05-18 01:41 Moonshoterr 阅读(303) 评论(0) 推荐(0) 编辑
摘要: master-worker模式是一种并行模式,它的核心思想,系统有两个进程或者线程协议工作,master负责接收和分配并整合任务(merge),worker进程负责处理子任务(divide),可见这也是一种归并的思想,当客户端进程启动后,开启master进程,流程如图所示 1.ZooKeeper中的 阅读全文
posted @ 2020-05-07 23:28 Moonshoterr 阅读(2457) 评论(0) 推荐(0) 编辑
摘要: 找到链表倒数第k个节点 class Solution { public ListNode getKthFromEnd(ListNode head, int k) { if(head == null) return null; ListNode dummyHead = new ListNode(-1) 阅读全文
posted @ 2020-05-07 18:01 Moonshoterr 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 最长回文子串 class Solution { public String longestPalindrome(String s) { if(s.equals("") || s == null) return ""; int length = s.length(); boolean[][] dp = 阅读全文
posted @ 2020-05-07 15:48 Moonshoterr 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 自动机的核心就是“状态”和“状态转移”,所以自动机又叫状态机。而动态规划也恰好是“状态”与”状态转移“。自动机又分为DFA与NFA,DFA一个输入对应一个状态转移,转移过程是确定的,而NFA一个状态输入对应多个转移方程 在LeetCode正则表达式匹配这道困难题目中,很明显*号对应着一个NFA,初始 阅读全文
posted @ 2020-05-06 01:29 Moonshoterr 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 设有关系模式R<U,F>,其中U = {A,B,C,D,E},F={A→D,CE→D,BC→D,DC→A},试求: 1.求出R的所有候选关键字 一、从关系模式到函数依赖到现实模型 数学可以看作是现实世界的高度抽象,所以当我们初次看到CE→D这样的依赖时,可能会无法理解,但如果我们把它转化为现实世界中 阅读全文
posted @ 2019-05-07 23:07 Moonshoterr 阅读(281) 评论(0) 推荐(0) 编辑