10 2019 档案

摘要:一、作用 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 牧云文仔 阅读(324) 评论(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 牧云文仔 阅读(1743) 评论(0) 推荐(0)
摘要:一、概念 1. AQS(AbstractQueuedSynchronizer),抽象队列式同步器,在java.util.concurrent.locks(JUC)包下,是除了Java自带的synchronized关键字之外的锁机制 2. AQS机制:如果请求的资源被其他线程锁定,将当前线程加入等待队 阅读全文
posted @ 2019-10-06 07:30 牧云文仔 阅读(165) 评论(0) 推荐(0)
摘要:一、CAS概念 1. 悲观锁:一个线程加锁后其他线程会挂起,直到持有锁的线程释放锁,悲观锁从最坏的情况考虑问题。独占锁是一种悲观锁,例如synchronized关键字加锁,例如可重入锁ReentrantLock 2. 乐观锁:不加锁,多个线程共同执行,如果发生了冲突,就去重试(do...while. 阅读全文
posted @ 2019-10-05 17:52 牧云文仔 阅读(282) 评论(0) 推荐(0)