摘要: 方法介绍: boolean await() 阻塞线程 直至被唤醒boolean await(long time, TimeUnit unit) 阻塞线程 超时自动唤醒void signal() 唤醒一个await线程void signalAll() 唤醒所有await线程 场景举例: 班级组织郊游, 阅读全文
posted @ 2020-01-10 09:47 蟹烟客 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 解决了什么问题: 重入锁解决了同步方法调用另一个同步方法时死锁的问题(即方法A没有解锁的情况下 方法B可以取得锁 并在B归还锁之后 锁依然被A持有) 代码示例: 以下代码中使用两种重入方式 关键字synchronized 和 基于AQS的重入锁ReentrantLock public static 阅读全文
posted @ 2020-01-08 14:51 蟹烟客 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 主要方法: 构造函数 CountDownLatch(int n) 阻塞方法 latch.await() 阻塞当前线程 直到latch状态为已完成计数减一 latch.countDown() 次数减1 直到为0 状态变更 场景举例: 1.长跑比赛,一共有2个人一起赛跑, 每个人准备好之后在原地等待, 阅读全文
posted @ 2020-01-08 10:45 蟹烟客 阅读(850) 评论(0) 推荐(0) 编辑
摘要: 通过一个简单的例子描述场景: 公平场景: 现在同时有10个人需要在饮水机接水, 但是饮水机每次只能被同一个人使用, 那么最先到的当然可以直接接水,后来的则肯定需要等待, AQS使用的策略是, 在接水的地方放一块黑板, 每个来接水的人需要在黑板上写下自己名字, 若自己前面没人则直接写上名字, 新来接水 阅读全文
posted @ 2020-01-07 19:53 蟹烟客 阅读(440) 评论(0) 推荐(0) 编辑
摘要: Atomic: 翻译为原子的, 其用途是用来解决原子问题, 那么什么是原子呢,解释为不可被中断的一个或一系列操作 举例理解: 在多线程情况下操作同一个Integer对象obj 线程A需要执行业务逻辑 获取对象obj,若obj==1则设置obj=2 线程B需要执行业务逻辑 获取对象obj,若obj== 阅读全文
posted @ 2020-01-07 16:03 蟹烟客 阅读(753) 评论(0) 推荐(0) 编辑
摘要: LockSupport解决了什么问题:LockSupport使用静态方法可以让线程在任意位置阻塞, 当然也可以重新唤醒 针对线程的阻塞和重新唤醒, 有很多种方法, 其中基础方式有以下几种(重入锁等高级封装方式不在此文考虑) 1.Object自有的wait和notify 但是这种方式使用起来比较麻烦, 阅读全文
posted @ 2020-01-07 14:35 蟹烟客 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 基础知识:synchronized锁可分为对象锁和类锁, 顾名思义对象锁就是给实例对象进行加锁, 类锁则是给类进行加锁 synchronized常见方式如下: 1 对象方法加锁(对象锁) public synchronized void test(){ //doSomething。。。。。 } 2 阅读全文
posted @ 2020-01-07 12:04 蟹烟客 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 执行具体过程(集成到spring) 找到扫包类ClassPathMapperScanner,和以往的扫包形式一样,扫描包下所有类, 并获得BeanDefinition 基于BeanDefinition,通过设置definition.setBeanClass,然后在spring 容器中通过getBea 阅读全文
posted @ 2020-01-03 10:23 蟹烟客 阅读(1394) 评论(0) 推荐(0) 编辑
摘要: 启动过程分析: 与绝大部分starter一样, 使用spring.factories作为入口 org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.baomidou.mybatisplus.spring.boot.sta 阅读全文
posted @ 2020-01-03 10:18 蟹烟客 阅读(3920) 评论(0) 推荐(0) 编辑
摘要: 问题: 在gitlab由于某些问题挂机,或无法再次启动的情况下,如何将已有项目导出到新的gitlab服务器中 解决:gitlab有自己的备份命令和定时备份配置,但是如果既没有定时备份,而备份命令在挂机的情况也无法执行,这是灾难性的时刻, 有可能有的项目本地没有了,大部分情况多人同时开发,合并代码会是 阅读全文
posted @ 2020-01-03 10:10 蟹烟客 阅读(1637) 评论(0) 推荐(0) 编辑