上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 31 下一页
摘要: 场景: 加入线程A获取分布式锁进入方法A,由于某种原因Hang住了 到了指定时间释放锁,这个时候线程B进入得到锁,这个时候线程B很顺利完成业务逻辑操作,然后释放掉锁,就在这个时候线程A开始继续往下执行代码,按照这个逻辑他最终会执行finally代码块 执行到释放锁的逻辑 那么这个时候如果锁的值一样,很有可能会释放掉已经获取锁的线程持有的那把锁。 那么该如何设计呢? 答案很简单... 阅读全文
posted @ 2021-02-03 11:12 陶朱公Boy 阅读(2198) 评论(0) 推荐(0) 编辑
摘要: @Transactional(rollbackFor = Exception.class) @Overridepublic DubboResult<Boolean> productAddOrModify(MallProductAddModifyReq req) { log.info("权益商城商品添 阅读全文
posted @ 2021-01-18 20:26 陶朱公Boy 阅读(973) 评论(0) 推荐(0) 编辑
摘要: 一、问题的提出 在系统开发过程中常使用ThreadLocal进行传递日志的RequestId,由此来获取整条请求链路。然而当线程中开启了其他的线程,此时ThreadLocal里面的数据将会出现无法获取/读取错乱,甚至还可能会存在内存泄漏等问题,下面用代码来演示一下这个问题。 普通代码示例: imag 阅读全文
posted @ 2020-12-12 16:00 陶朱公Boy 阅读(442) 评论(0) 推荐(0) 编辑
摘要: IDEA “Cannot resolve symbol” 解决办法 IDEA 无法识别同一个 package 里的其他类,将其显示为红色,但是 compile 没有问题。鼠标放上去后显示 “Cannot resolve symbol XXX”,重启 IDEA ,重新 sync gradle,Clea 阅读全文
posted @ 2020-11-26 10:58 陶朱公Boy 阅读(3546) 评论(0) 推荐(0) 编辑
摘要: 国外翻到的一篇比较好的文章,讲解java NIO 基本概念 selector channel 等 阅读全文
posted @ 2020-11-20 11:41 陶朱公Boy 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 二级索引:叶子节点中存储主键值,每次查找数据时,根据索引找到叶子节点中的主键值,根据主键值再到聚簇索引中得到完整的一行记录。 问题: 1.相比于叶子节点中存储行指针,二级索引存储主键值会占用更多的空间,那为什么要这样设计呢? InnoDB在移动行时,无需维护二级索引,因为叶子节点中存储的是主键值,而 阅读全文
posted @ 2020-11-18 16:59 陶朱公Boy 阅读(514) 评论(0) 推荐(0) 编辑
摘要: redis作为分布式缓存框架的首选 相信已经毋庸置疑。能高效、合理的使用好它 必定能提升系统的可用性,高性能、高吞吐量的保障。但选择一个客户端,充分发挥它的能力,就是一个选型问题。现在市场上能选择的产品也较多。但选择较多的是redission、Lettuce、jedis 跟着下面这篇文章 好好了解下 各自的优缺点,详细能对你有一定帮助。比如分布式锁选型...redission在分布式锁续期问题的解决思路... 阅读全文
posted @ 2020-11-18 11:50 陶朱公Boy 阅读(880) 评论(0) 推荐(0) 编辑
摘要: linux内核 在比如管道通信、socket通信也好 其实会产生很多事件;缓冲区满,缓冲区空,缓冲区非空,缓冲区非满等四个场景; 上述场景 其实都是阻塞IO;阻塞IO一个线程只能处理一个IO流事件,效率相对不高,如果有多个事件,以串行思路处理;非阻塞IO意思是 当一个事件还没数据时,可以去处理其他IO事件于是有了select,poll 机制,在空闲的时候,会把当前线程阻塞掉,当有一个或多个流有I/O事件时,就从阻塞态中醒来,于是我们的程序就会轮询一遍所有的流;因为不知道具体是哪个流可读或可写;而Epoll可以让我们知道具体是哪个流 可读或可写 复杂度变O(1) 阅读全文
posted @ 2020-11-10 11:43 陶朱公Boy 阅读(127) 评论(0) 推荐(0) 编辑
摘要: Access-Control-Allow-Headers等基础常识 阅读全文
posted @ 2020-11-03 16:39 陶朱公Boy 阅读(13108) 评论(1) 推荐(2) 编辑
摘要: synchronized在使用的时候底层细节你了解吗,相信很多同学对细节很少关注;比如竞争失败了的线程怎么安置,每个对象的监视器,线程执行synchronized时,其实是获取对象的监视器才能进入同步代码,如果没有获取监视器 则会进入同步队列等待,等获取监视器的线程释放锁,然后同步队列的线程会重新尝试获取对象监视器,这个过程也蛮重要 阅读全文
posted @ 2020-10-21 17:59 陶朱公Boy 阅读(322) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 31 下一页