摘要: 控制Full GC频率的关键是大多数对象的生命周期比较短,尤其是不能有成批量、生命周期长的大对象,才能保障老年代空间的稳定 YGC太频繁: 1.加大新生代大小 2.晋升到老年代的对象年龄的最大值 阅读全文
posted @ 2018-08-12 21:40 技塑人生 阅读(181) 评论(0) 推荐(0) 编辑
摘要: nginx的master-worker模式 nginx采用master-worker进程的模式,master负责解析配置,启动worker进程和处理信号,比如restart重启worker进程,worker负责真正处理请求。当有多个worker进程时,一个请求将被哪个worker进程处理呢?更具体一 阅读全文
posted @ 2018-08-12 19:33 技塑人生 阅读(208) 评论(0) 推荐(0) 编辑
摘要: 场景有两种: 1.异步复制 2. 主从切换 假设集群中发生网络分区, 那么集群可能会分裂为两方, 大多数(majority)的一方包含节点 A 、C 、A1 、B1 和 C1 , 而少数(minority)的一方则包含节点 B 和客户端 Z1 。 在网络分裂期间, 主节点 B 仍然会接受 Z1 发送 阅读全文
posted @ 2018-08-04 02:07 技塑人生 阅读(2449) 评论(1) 推荐(0) 编辑
摘要: U2FsdGVkX19OTiM+iKfgJIybzVmIbMySOknXXRl4zy/1J4NTA6cPK8TUZCBOC1PPegqSpEBnHjoakQcbkSwJO8DlGI6tZfzVSxwcHsY+v1n+bXjW57ybNSfexU8YPWhyvGuSAumQJZBcsRXgTIPbor 阅读全文
posted @ 2017-07-25 00:33 技塑人生 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 简要对比三种基本算法: 关于时间开销: mark-sweep:mark阶段与活对象的数量成正比,sweep阶段与整堆大小成正比 mark-compact:mark阶段与活对象的数量成正比,compact阶段与活对象的大小成正比 copying:与活对象大小成正比 年轻代中的对象在minor GC时的 阅读全文
posted @ 2017-07-24 22:01 技塑人生 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一个通用的线程池需要提供以下4种能力,使用方根据业务场景选择适合的策略: 1.可自定义的线程数 2.回收线程的策略 3.任务队列堆积的策略 4.处理不过来时的拒绝策略 Executors里面封装了这几种比较常用的线程池,newFixedThreadPool、newSingleThreadExecut 阅读全文
posted @ 2017-07-23 01:04 技塑人生 阅读(929) 评论(0) 推荐(0) 编辑
摘要: 第一章 阅读全文
posted @ 2017-07-16 22:27 技塑人生 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 程序等待某个同步IO操作完成,CPU将处于空间状态。 线程安全 多个线程交替访问某个类,调用方不需做任何的同步,这个类始终表现出正确的行为 synchronized除了实现原子性(确定临界区),保证了内存可见性(一个线程修改了变量后,其他线程能够看到) 14章 sleep进入休眠,但有可能这是不必要 阅读全文
posted @ 2017-05-27 01:12 技塑人生 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 5.5以前没有线程池 可重复读--指事务1先加了读锁,导致事务2无法update和delete;或者先加了写锁,导致其他事务无法select幻读--insert没法加锁导致的,InnoDB使用行锁+间隙锁解决 行锁防止别的事务修改或删除,GAP锁防止别的事务新增,行锁和GAP锁结合形成的的Next- 阅读全文
posted @ 2017-05-27 01:11 技塑人生 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 中间件--软件胶水,起到桥梁的作用 volatile 读:不会有线程的本地副本,只会从主存读取 写:只有一份主存的数据 synchronized 读:保证本地副本与主存的同步 写:把当前线程修改的变量的本地副本同步给主存,从主存读取数据 wait一般写在循环中,判断相关状态是否达到预期,防止虚假唤醒 阅读全文
posted @ 2017-05-09 11:37 技塑人生 阅读(244) 评论(0) 推荐(0) 编辑