上一页 1 ··· 6 7 8 9 10 11 12 13 14 15 下一页
摘要: 一、作用 1. 多线程同步代码,保证方法或者代码块在运行时,同一时刻只有一个线程可以进入到临界区(互斥性) 2. 保证线程间共享变量的修改及时可见(可见性) a. 当线程获取锁时,线程的本地变量无效,需要从主存中获取共享变量的值 b. 线程释放锁时,线程的本地变量被刷新到主存中 3. 有效解决重排序 阅读全文
posted @ 2019-10-27 12:45 牧云文仔 阅读(226) 评论(0) 推荐(0)
摘要: 一、引入场景 1. 打印方法执行的耗时 public void service(){ before(); doSomething(); after(); } 2. 在before和after记录当前时间,两者相减得到doSomething()的耗时 private long startTime; / 阅读全文
posted @ 2019-10-26 20:12 牧云文仔 阅读(323) 评论(0) 推荐(0)
摘要: 一、简介 1. ssh(Secure Shell)是一个安全网络协议 2.用于远程连接linux服务器 3. 传输的数据是RSA非对称加密和压缩的 二、安装 1. ssh分为服务器和客户端,linux系统默认已经安装 2. 登录远程机器需要安装客户端 sudo apt-get install ope 阅读全文
posted @ 2019-10-09 10:32 牧云文仔 阅读(845) 评论(0) 推荐(0)
摘要: 一、Socket编程 1. 通过Socket编程可以和其他机器通信,监听本机某个端口号,收取其他机器发到本机上这个端口号上的消息,基于TCP协议,操作系统只认TCP协议 2. 三种操作:Accept连接操作、读操作、写操作,Socket编程需要在连接成功后,启动一个while死循环的线程进行读写操作 阅读全文
posted @ 2019-10-06 16:11 牧云文仔 阅读(255) 评论(0) 推荐(0)
摘要: 一、概念 1. 内存泄漏:对象使用完之后,没有按照预期被GC回收,一直留在内存中 2. 内存溢出:大量对象一直留在内存中,导致内存不够用(OOM),影响正常的程序运行 二、内存泄漏的场景 1. 内存中数据量太大,比如一次性从数据库中取出来太多数据 2. 静态集合类中对对象的引用,在使用完后未清空(只 阅读全文
posted @ 2019-10-06 15:09 牧云文仔 阅读(1742) 评论(0) 推荐(0)
摘要: 一、概念 1. AQS(AbstractQueuedSynchronizer),抽象队列式同步器,在java.util.concurrent.locks(JUC)包下,是除了Java自带的synchronized关键字之外的锁机制 2. AQS机制:如果请求的资源被其他线程锁定,将当前线程加入等待队 阅读全文
posted @ 2019-10-06 07:30 牧云文仔 阅读(164) 评论(0) 推荐(0)
摘要: 一、CAS概念 1. 悲观锁:一个线程加锁后其他线程会挂起,直到持有锁的线程释放锁,悲观锁从最坏的情况考虑问题。独占锁是一种悲观锁,例如synchronized关键字加锁,例如可重入锁ReentrantLock 2. 乐观锁:不加锁,多个线程共同执行,如果发生了冲突,就去重试(do...while. 阅读全文
posted @ 2019-10-05 17:52 牧云文仔 阅读(281) 评论(0) 推荐(0)
摘要: 一、自旋锁 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 ··· 6 7 8 9 10 11 12 13 14 15 下一页