摘要: AQS AbstractQueuedSynchronizer抽象资源队列同步器,用于实现任务对于资源获取的同步功能。 几个要点: 资源:state,int计数 等待线程:Node,等待线程队列 线程阻塞:Unsafe.park() 获取和释放资源通过操作state实现,为0则代表资源空闲。 阅读全文
posted @ 2019-12-20 17:45 江左笑笑生 阅读(120) 评论(0) 推荐(0)
摘要: 跨域的两种解决方案及原理 jsonp:https://zhuanlan.zhihu.com/p/24390509 cors:https://zhuanlan.zhihu.com/p/24411090 阅读全文
posted @ 2019-12-12 17:50 江左笑笑生 阅读(139) 评论(0) 推荐(0)
摘要: mockito mock class 的本质是动态生成 mock 类的子类。因此它不能 mock 有 final/private 修饰的方法 阅读全文
posted @ 2019-11-24 17:18 江左笑笑生 阅读(282) 评论(0) 推荐(0)
摘要: openstack为什么使用rabbitmq作为rpc的底层协议 openstack rpc执行流程 1. 消费者发送mq消息到rabbitmq服务器,其中消息包括调用的方法、参数、reply_to topic。其中重点是reply_to topic,这个topic用于生产者存放结果,消费者消费结果 阅读全文
posted @ 2019-11-19 16:10 江左笑笑生 阅读(355) 评论(0) 推荐(0)
摘要: Java SPI机制 什么是SPI SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的API,它可以用来启用框架扩展和替换组件。 SPI有什么用 调用者根据实际使用需要,启用、扩展、或者替换框架的实现策略 如: 数据库加载驱动 Dubbo 阅读全文
posted @ 2019-11-18 16:35 江左笑笑生 阅读(103) 评论(0) 推荐(0)
摘要: java知识结构 一、java 1、基础 2、集合框架 3、多线程框架 4、jvm内存模型(jmm) 二、数据持久化 1、mysql 三、缓存、消息机制 1、redis 2、mq 3、zookeeper 四、框架 1、spring、spring mvc、spring boot 2、mybatis、m 阅读全文
posted @ 2019-11-10 15:24 江左笑笑生 阅读(126) 评论(0) 推荐(0)
摘要: log4j 配置文件使用原则 阅读全文
posted @ 2019-11-08 11:31 江左笑笑生 阅读(1250) 评论(0) 推荐(0)