发布了 27 篇内容
共 83933字, 被阅读 5192次
获得了 33 次赞同
获得了 6次喜欢, 获得了 27 次收藏
参与了 7 次互动
互动包含发布评论、点赞评论、参与投票等
![Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!](https://static001.geekbang.org/infoq/e0/e0ebb16f3f16baa4f2e7a52080be6236.png?x-oss-process=image/resize,w_416,h_234)
Dubbo 接口,导出 Markdown ,这些功能 DocView 现在都有了!
自从 DocView 发布了简陋的第一版之后,就不断地有小伙伴提建议意见等等,希望扩展各种功能。这不,时隔两周,DocView 又发布了新版本,本次的更新主要涉及到支持 Dubbo,以及支持导出单个文档为 Markdown 文件。来一起看看新功能吧!
![线程池 ThreadPoolExecutor 原理及源码笔记](https://static001.geekbang.org/infoq/77/77b43caeb6aab636cc41b3a4ce170a06.jpeg?x-oss-process=image/resize,w_416,h_234)
线程池 ThreadPoolExecutor 原理及源码笔记
前面在学习 JUC 源码时,很多代码举例中都使用了线程池 ThreadPoolExecutor ,并且在工作中也经常用到线程池,所以现在就一步一步看看,线程池的源码,了解其背后的核心原理。
![Spring 自调用事务失效,你是怎么解决的?](https://static001.geekbang.org/infoq/f5/f5f6da2738b6e370b3c029955973f55e.png?x-oss-process=image/resize,w_416,h_234)
Spring 自调用事务失效,你是怎么解决的?
相信大家都遇到一种事务失效场景,那就是 Spring 自调用,就是在 Service 方法内,调用另一个加 `@Transactional` 注解的方法,发现事务失效,这时候你是怎么解决的呢?
![写文档太麻烦,试试这款 IDEA 插件吧!](https://static001.geekbang.org/infoq/d6/d659aaef255f0335ae31096d36c2f1be.png?x-oss-process=image/resize,w_416,h_234)
![写时复制集合 —— CopyOnWriteArrayList](https://static001.geekbang.org/infoq/71/71577b876dc0a7bd224ff185dab67396.png?x-oss-process=image/resize,w_416,h_234)
写时复制集合 —— CopyOnWriteArrayList
JUC 下面还有一个系列的类,都是 CopyOnWriteXXX ,意思是写时复制,这个究竟是怎么回事?那就以 CopyOnWriteArrayList 为切入点,一起了解写时复制是怎么回事?
![使用 Maven Archetype 基于 IDEA 快速创建项目](https://static001.geekbang.org/infoq/9d/9d705cb7010ee6dd6da76ea3d16d47ba.jpeg?x-oss-process=image/resize,w_416,h_234)
![非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue](https://static001.geekbang.org/infoq/5c/5c6487d1b379f73ba49ca2f7edf9d760.jpeg?x-oss-process=image/resize,w_416,h_234)
非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue
JUC 下面的相关源码继续往下阅读,这就看到了非阻塞的无界线程安全队列 —— ConcurrentLinkedQueue,来一起看看吧。
![APP 莫名崩溃,开始以为是 Header 中 name 大小写的锅,最后发现原来是容器的错!](https://static001.geekbang.org/infoq/65/65fd0772fc99aec73a36f475b9c058d9.png?x-oss-process=image/resize,w_416,h_234)
![几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!](https://static001.geekbang.org/infoq/0f/0f0cdbbfd5ac452a28477bf1a6b2737e.jpeg?x-oss-process=image/resize,w_416,h_234)
几行代码轻松实现跨系统传递 traceId,再也不用担心对不上日志了!
新项目查日志太麻烦,多台机器之间查来查去,还不知道是不是同一个请求的。打印日志时使用 MDC 在日志上添加一个 traceId,那这个 traceId 如何跨系统传递呢?
![MySQL 建表为啥还设置个自增 id ?用流水号当主键不正好么?](https://static001.geekbang.org/infoq/a3/a3e98763d49f899f783b168e608d21f1.jpeg?x-oss-process=image/resize,w_416,h_234)
![基于链表的有界阻塞队列 —— LinkedBlockingQueue](https://static001.geekbang.org/infoq/f7/f7bfc525a1adf66f1b5780d4ddb041b3.jpeg?x-oss-process=image/resize,w_416,h_234)
基于链表的有界阻塞队列 —— LinkedBlockingQueue
上一节看了基于数据的有界阻塞队列 ArrayBlockingQueue 的源码,通过阅读源码了解到在 ArrayBlockingQueue 中入队列和出队列操作都是用了 ReentrantLock 来保证线程安全。下面咱们看另一种有界阻塞队列:LinkedBlockingQueue。