AbstractQueuedSynchronizer抽象同步队列简称AQS,它是实现同步器的基础组件,并发包中锁的底层就是使用AQS实现的。大多数开发者可能永远不会直接使用AQS,但是知道其原理对于架构设计还是很有帮助的。
在并发编程中我们为啥一般选用创建多个线程去处理任务而不是创建多个进程呢?这是因为线程之间切换的开销小,适用于一些要求同时进行并且又要共享某些变量的并发操作。而进程则具有独立的虚拟地址空间,每个进程都有自己独立的代码和数据空间,程序之间的切换会有较大的开销。
了解 SQL 查询的执行顺序对我们解决一些问题很有帮助,有时我们可能会疑惑为什么不能对分组的结果进行筛选这样类似的问题?之前一直不是理解这个问题,在了解了SQL 查询的执行顺序之后这个问题也就迎刃而解。在我们对 SQL 查询语句进行分析优化时,掌握执行顺序也是有一定帮助的。
在Liunx系统CentOS7.9的中部署项目遇到了Glibc版本过低的问题,使用yum安装最高只能安装Glibc2.17并不能满足要求,本文介绍了如何用源码编译的方法升级Glibc的版本。
形容代码写得好我们经常用好代码、优秀的代码;形容不好的代码我们就说是屎山、垃圾。如果让我们说出这代码到底好在哪?坏在哪?我们可能就哑口无言了。那评价代码好坏的标准有哪些?我们可以从哪些维度去评价一个代码的好坏呢?下面我给出一些评价代码的标准和一些基本的设计原则。