这是why哥的第 70 篇原创文章 从Dubbo的一次提交开始 故事得从前段时间翻阅 Dubbo 源码时,看到的一段代码讲起. 这段代码就是这个: org.apache.dubbo.rpc.RpcContext 使用 InternalThreadLocal 提升性能. 相信作为一个程序猿,都会被 improve performance(提升性能)这样的字眼抓住眼球. 心里开始痒痒的,必须要一探究竟. 刚看到这段代码的时候,我就想:既然他是要提升性能,那说明之前的东西表现的不太好. 那之前的东西是…
我发现 不少人 误解了这两者. csdn上也有人提出过这种疑问: http://bbs.csdn.net/topics/250061733 经过查阅资料和认真分析,我特说明一下这两者概念上的区别. 我只讲两个关键点,明白人一看就懂: 1.两者有根本性的区别,用处不一样! 1)连接池是缓存并托管数据库连接,主要是为了提高性能. 2)而ThreadLocal缓存连接,是为了把同一个数据库连接“分享”给同一个线程的不同调用方法.(不管调用哪个方法,都是使用的同一个连接,方便进行“跨方法”的事务控制)…
越来越多的人搞爬虫,设计到多线程爬取, 还有一些机器学习的一些模块也需要这玩意, 感觉自己不会逼格不高. 抽时间赶紧玩一玩这东西, 希望提高对软件的认知和归属感,不要太傻. cpu内部架构参考 你知道CPU是如何工作的?-视频 CPU核心越多越好?你的CPU可能正在养老! 你真的了解多核处理器吗? 1.双核≠双性能 多核不一定会使你的手机或电脑速度更快,但它将提高你的PC的整体性能,这是一个有所不同的细微的技术特色.多核处理器的性能提升并不是简单CPU核心的倍数,因为受到两(多)个核之间共享资源…
前言本文将介绍git的基本概念.环境搭建.日常使用,主要针对刚接触git,或接触不久,或好久没用忘记的同学们,当然是基于mac环境的,window系统也是大同小异!本文将从以下几个模块介绍,希望能帮助到你们: 注:git可以管理图片.文档.代码等资源,为描述方便,本文以代码举例描述,其他资源使用同理:本文描述力求生动形象,所以部分细节可能模糊一点,暂且忽略即可~Git的基本介绍Git下载及安装Git基本配置生成密钥并关联仓库日常使用场景Git的基本介绍是什么? 一个管理代码的工具: 我们可以通过…
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View…
目录 NIO-SocketChannel源码分析 目录 前言 ServerSocketChannelImpl 创建ServerSocketChannel 绑定和监听 接收 SocketChannelImpl SocketChannel生命周期 创建SocketChannel 连接 写数据 读数据 关闭通道 总结 相关文献 NIO-SocketChannel源码分析 目录 NIO-概览 NIO-Buffer NIO-Channel NIO-Channel接口分析 NIO-SocketChannel…
做开发好多年了,Debug大家肯定都不陌生,绝对称得上是家常便饭了.博主虽不敢妄下断言,但是这里也猜一下,肯定有很多人都没有使用过Remote Debug(远程调试).说来惭愧,博主也是工作了3年才用上这么个玩意,今天又使用到,所以整理个帖子分享一下. 何谓远程调试,就是我们把打包后的代码部署到服务器上之后,使用本地开发环境连接到服务器部署环境,以这样的方式调试. 在实际开发中,并不是所有问题都能在本地发现.一旦我们遇到服务器上出现的BUG又很难排查的时候,使用远程调试,就可能帮助我们尽快的排查…
01 关注"一猿小讲"朋友,都知道以往的文章一直倡导拒绝 CRUD,那到底什么是 CRUD?今天咱们就聊聊 Java 妹子小猿与数据库老头交互的事儿. 产品小汪铿锵有力的说:小猿同学,咱们近期要推一爆款产品,你先实现用户基本的登录的功能. 啥玩意?小猿内心嘀咕嘀咕:爆款产品,还基本的登录,那不就是实现用户的 CRUD(增删改查)么? 小汪一句话,累死三军.扯皮一上午的会议终于结束了,于是小猿便叫了个外卖,填补了肚子的空虚后,小猿习惯性的在脑海里,开始了爆款产品的从 0 到 1 的脑图搭…
水稻:最近有个朋友生产环境出现MySQL死锁问题,一听是死锁,那必须去看看啊,于是饶(si)有(qu)兴(huo)致(lai)的研究了好几天 菜瓜:MySQL死锁,赶紧分享一下 水稻:能否先让我装完X,我从朋友那里拿到数据结构,复现,分析,查资料,总... 菜瓜:今天的菜真香 水稻:...好吧,进入正题(数据已加工处理) 一开始朋友拿出了死锁日志中记录的两条SQL语句(暂且把第一条SQL叫SQL1,第二条SQL2) -- 两句SQL结构一致,只是参数不一样. explain update `de…
1.什么是线程不安全? 线程不安全也叫非线程安全,是指多线程执行中,程序的执行结果和预期的结果不符的情况就叫做线程不安全. ​ 线程不安全的代码 SimpleDateFormat 就是一个典型的线程不安全事例,接下来我们动手来实现一下.首先我们先创建 10 个线程来格式化时间,时间格式化每次传递的待格式化时间都是不同的,所以程序如果正确执行将会打印 10 个不同的值,接下来我们来看具体的代码实现: import java.text.SimpleDateFormat; import java.ut…