上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页
摘要: 一、自旋锁 vs 互斥锁 1. 自旋锁:当一个线程获取锁时,如果锁已经被其他线程获取,当前线程就while进行重试,不进入休眠阻塞,减少线程上线文切换,但是循环等待消耗CPU 2. 互斥锁:当一个线程获取锁后,其余线程进入休眠阻塞,进行线程上下文切换 二、悲观锁 vs 乐观锁 1. 悲观锁:先锁定共 阅读全文
posted @ 2019-09-28 18:16 牧云文仔 阅读(274) 评论(0) 推荐(0)
摘要: 一、引入背景(Why) 1. 在多线程环境下,HashMap的put会导致扩容,扩容引起死循环,导致CPU使用率100% 2. 可以使用HashTable和Collections.synchronizedMap(hashMap)可以解决多线程的问题 3. HashTable和Collections. 阅读全文
posted @ 2019-09-28 17:44 牧云文仔 阅读(758) 评论(0) 推荐(0)
摘要: 一、集合概览 1. 集合与数组:数组是定长的,集合是变长的 2. 集合的接口是Collection,数据结构有Map/List/Set 3. 集合继承关系 二、HashMap定义: 1. Hash表(key-value),根据key(hash code)找到对应的value;会有hash冲突 2. 阅读全文
posted @ 2019-09-23 22:58 牧云文仔 阅读(171) 评论(0) 推荐(0)
摘要: 一、引入背景 1. 线程频繁的创建和销毁会消耗大量系统资源 2. 线程上线文切换会消耗大量系统资源 3. 线程数量太多,栈内存会溢出,因为每个线程都有自己的栈 4. 需要一种机制,可以线程复用,执行完一个任务后不销毁,继续执行其他任务 5. 还可以提高线程的可控性 二、线程池定义 1. 接口关系 a 阅读全文
posted @ 2019-09-21 20:58 牧云文仔 阅读(251) 评论(0) 推荐(0)
摘要: 一、连接远程机 ssh 机器名/机器IP ssh 用户名@机器名/机器IP 二、查看磁盘空间和文件大小 总的磁盘空间 df -h 按大小查看所有文件 du -sh ./* 按大小查看某个文件夹 du -sh logs/ 三、查看进程ps-process status netstat -anp | g 阅读全文
posted @ 2019-09-21 20:18 牧云文仔 阅读(149) 评论(0) 推荐(0)
摘要: 一、通信框架 1. 通信包含两部分:传输协议+网络IO 2. 传输协议:TCP/UDP/HTTP,基于Socket的流处理,socket编程需要对每个请求开一个线程,阻塞式等待通信消息 3. 网络IO:NIO是Socket的改善,使用selector优化 4. Netty是基于NIO的分布式通信框架 阅读全文
posted @ 2019-09-17 13:07 牧云文仔 阅读(272) 评论(0) 推荐(0)
摘要: 一、概念 1. 接口提供一个默认实现的方法,并且不强制实现类重写此方法 2. 默认方法使用default关键字来修饰 二、引入背景 1. 当一个接口添加新方法时,需要所有的实现类都重写新方法,影响到了已有的实现类,可能导致应用崩溃 2. 默认方法可以不强制重写,也不会影响到已有的实现类 3. 例如I 阅读全文
posted @ 2019-09-17 13:06 牧云文仔 阅读(13274) 评论(0) 推荐(2)
摘要: String regEx ="[^a-zA-Z0-9]"; // 正则表达式 Pattern p = Pattern.compile(regEx); // 编译 String str="$%abc&(@1#2"; // 要匹配的字符串 Matcher m = p.matcher(str); // 匹配 ... 阅读全文
posted @ 2019-09-17 12:53 牧云文仔 阅读(4217) 评论(0) 推荐(0)
摘要: 一、背景 1. Optional类主要解决空指针异常的问题,避免显式判断空指针,减少null的防御性检查 2. 借鉴了google guava的Optional类 3. Optinal类里有一个字段value,主要就是对value是否为Null的判断和操作 4. Optional对象可以看做是一种容 阅读全文
posted @ 2019-09-17 11:41 牧云文仔 阅读(352) 评论(0) 推荐(0)
摘要: 一、介绍 1. TTL是mongo中一种特殊的索引 2. 只能在单字段上建立 3. 字段只能是日期类型 二、原理 1. mongo后台会有一个单线程,定时轮询 2. mongo复制集中只删除主mongo的数据 三、使用 1. 创建 db.log_events.createIndex( { "crea 阅读全文
posted @ 2019-09-15 18:10 牧云文仔 阅读(572) 评论(0) 推荐(0)
上一页 1 ··· 7 8 9 10 11 12 13 14 15 下一页