摘要: ReadWriteLock:读写锁 已知实现类,ReentrantReadWriteLock -->可重入读写锁 ReadWriteLock维护一对关联的locks,一个用于只读操作,一个用于写入操作。 read lock可以有多线程同时读取,write lock只能有一个线程去写。 /*希望写入的 阅读全文
posted @ 2020-05-24 16:45 SpaceJz 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 1、CountDownLatch 减法计数器 CountDownLatch 作为计数器使用,顾名思义,是做 - - 的计数器。 在必须要执行某些任务的时候使用此辅助。 如下图可见,未等待计数器归零,则有可能出现有的学生还没出去就已经关门了。 解决办法就是添加一个await()等待该计数器归零。在执行 阅读全文
posted @ 2020-05-24 15:39 SpaceJz 阅读(238) 评论(0) 推荐(0) 编辑
摘要: List<String> list = new CopyOnWriteArrayList<>();for (int i =1; i <= 10; i++) { new Thread(()->{ list.add(UUID.randomUUID().toString().substring(0,5)) 阅读全文
posted @ 2020-05-24 13:24 SpaceJz 阅读(147) 评论(0) 推荐(0) 编辑
摘要: public class Lock8 { public static void main(String[] args) { Phone p = new Phone(); new Thread(()->{ p.sendMsg();},"a").start(); TimeUnit.SECONDS.sle 阅读全文
posted @ 2020-05-24 11:21 SpaceJz 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 1.栈溢出异常(StackOverflowError) 形成原因: 死循环调用方法。 前几天提了关于栈溢出的一个故障单。微服务A请求微服务B资源的一个方法变成了懒加载,懒加载方法中判断当资源为空时就向微服务C请求资源,请求得到资源后,先缓存,再通微服务A去更新数据库{更新表结构时候还会向微服务B请求 阅读全文
posted @ 2020-05-24 11:10 SpaceJz 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 1、方法区与 Java 堆一样,是各个线程共享的内存区域。2、static关键字的基本作用:方便在没有创建对象的情况下来进行调用(方法/变量)。3、static可以修饰 方法 成员变量(属性) 代码块(不能出现在方法内部),对于静态方法来说,是没有this的,因为它不依附于任何对象注:1.独立于类 阅读全文
posted @ 2020-05-24 10:14 SpaceJz 阅读(102) 评论(0) 推荐(0) 编辑