随笔分类 -  java-并发编程

摘要:一、4种引用 强:垃圾回收正常回收 软:内存不够时才会回收,做缓存用 弱:gc就会回收,ThreadLocal中ThreadLocalMap里的entry使用的就是弱引用 虚:回收时会收到一个通知,管理堆外内存使用 二、ThreadLocal的继承 不会被子线程继承,想要被子线程继承,需要使用Inh 阅读全文
posted @ 2020-09-09 00:57 kylinmac 阅读(188) 评论(0) 推荐(0)
摘要:一、Lock 二、AbstractQueuedSynchronizer 队列同步器AbstractQueuedSynchronizer(以下简称同步器),是用来构建锁或者其他同步组件的基础框架,它使用了一个int成员变量表示同步状态,通过内置的FIFO队列来完成资源获取线程的排队工作,并发包的作者( 阅读全文
posted @ 2020-09-08 23:09 kylinmac 阅读(156) 评论(0) 推荐(0)
摘要:忘了在哪存下来的了。。。。总之是转载的 阅读全文
posted @ 2020-09-08 15:04 kylinmac 阅读(84) 评论(0) 推荐(0)
摘要:volatile的特性 可见性和原子性。 volatile写-读建立的happens-before关系 从内存语义的角度来说,volatile的 写-读 与 锁的释放-获取 有相同的内存效果;volatile 写 和 锁的释放 有相同的内存语义;volatile 读 与 锁的获取 有相同的内存语义。 阅读全文
posted @ 2020-09-07 17:00 kylinmac 阅读(166) 评论(0) 推荐(0)
摘要:一、synchronized关键字 Java中的每一个对象都可以作为锁。具体表现为以下3种形式。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是Synchonized括号里配置的对象。 基于进入和退出Monitor对线实现方法同步和代码块同 阅读全文
posted @ 2020-09-07 16:34 kylinmac 阅读(163) 评论(0) 推荐(0)
摘要:一、线程的创建及启动 //直接start new Thread().start(); //实现runnable接口 new Thread(new Runnable() { @Override public void run() { } }).start(); //实现future回调 new Thr 阅读全文
posted @ 2020-09-07 15:44 kylinmac 阅读(322) 评论(0) 推荐(0)