很遗憾的,我觉得文字也离开我了。说不好现在是什么感受。细想的话,文字也只不过是逻辑,有时候却会把文字当做思考。但即便是我当下写下的成逻辑的内容,明天看时也会不同。正因为这样的...
很遗憾的,我觉得文字也离开我了。说不好现在是什么感受。细想的话,文字也只不过是逻辑,有时候却会把文字当做思考。但即便是我当下写下的成逻辑的内容,明天看时也会不同。正因为这样的...
之前经常看到凯文凯利的文章,今天拿出他的书系统性地读了一下。人需要有这样的一些标杆在前方,这样我们才不会迷失。你所迷茫的8小时坐班制,他只用三言两语就讲明白了,这是工业时代的...
腰酸背痛咋办。 我是一名大龄程序员,32岁,在这个作为程序员即将退休的年纪,腰酸背痛这样的慢性疼痛整日折磨着我。相信也有不少人有着同样的苦恼。我曾去医院拍片,骨科医生看了一眼...
这是高频面试题,我因为这个面试题严重伤害了面试官的内心。因为他觉得这是个重要的问题,但实际上深入地看,理解才是更重要的。所以线程池参数一般说出几个,比如核心线程数、最大线程数...
泛型,也是经常问的。其实很容易理解的。 泛型指的就是容器所装对象的类型,只不过这个类型事先无法确定,就先用T来表示。看起来就像这个样子:container<T>。因为这是设计...
这个我们老背了。 四个级别:读未提交;读已提交;可重复读;序列化。 读未提交是指一个事务里的两次查询,可以查到另一个事务未提交的增改操作。读已提交是指一个事务里的两次查询,可...
现在的系统基本都是分布式的。但其实分布式这个事儿日常能用的就是个分布式锁,控制好竞争状态即可。其他的分布式数据库、缓存、消息队列啥的,用中间件都已经给你封装好了。封装好的东西...
非关系数据库诞生的缘由。 其实可以类比Java和Python,一种有着严格的类型控制,所有变量的声明都要说明是int还是String还是其他啥啥。一种则是所有变量都可以用va...
Spring也是一个恶魔,我认为它带给我的麻烦甚至比它解决的问题还多。很明显早期开发Web项目用Servlet就完事儿了,一个工程里头又有多少逻辑需要用上Spring来管理依...
之前读编程的书也好,读源码也好,头都要疼死。其实不单编程是如此,就算学其他任何领域,都是一样的情况。学电气容易吗,学工程容易吗,学心理学容易吗? 这些都是广义上的技术。 从有...
对于秒杀还是心存敬畏的,一直都觉得很牛逼,又没机会深入接触。不过,确实也经历过一些对性能要求较高的场景,当然,那毕竟不是秒杀。第一个就是微信信息流投放,少于30w的qps的公...
最近看了一本书叫《故事法则》。 其中有个非常重要的观点,就是抓重点。 一个故事是否成立,最关键的也许不是人物、目标、阻碍、行动、结果、高潮、结局。因为如果按这个结构去套故事,...
如何做一个系统设计。不仅是面试题常问的,更重要的是工作中也一直在面对这个问题。我们日常开发也会做很多的技术设计评审,其实这个就是在做系统设计。把系统设计再泛化一下,其实企业管...
有很多Atomic开头的类,比如AtomicInteger等。它和Integer是不同的,不同就不同在并发的情况下,前者是线程安全的,后者不是。Atomic的安全来自哪里,来...
这次讲讲ReentrantLock。这个锁的出现,就是为了要解决Sychronized的问题。 Synchronized是一个一刀切的锁。 而真实的并发场景很多很细。比如Sy...
wait()和notify()其实还是比较搞的。 为啥这么说? 因为他们关联了锁对象,以及在锁对象上排着队的线程。有些地方会用this.wait(),有些则会专门创建一个锁对...
线程池是技术层面的,我同一时间就只有这么多干活的人。而CountDownLatch是事情层面的,我有这么多事儿要干。所以它的作用就是,在你的多线程任务执行完后,CountDo...
用了线程之后,我们会直接创造线程吗?答案是,会。毕竟线程模型简单易用。那线程的回收问题咋办?咋办,低并发情况下有垃圾回收,你就随便用呗。大部分人实际上不会去写多线程。写多线程...
看了很多进程和线程的差别。用教科书上的讲法可以写好几百行,但说白了有点基础之后,会发现其实它们只有一个差别——进程有独立的内存,线程共享所处进程的内存。其他差异都是源于这个。...