草庐IT

发现地

全部标签

重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。AQS全称AbstractQueuedSynchronizer,即抽象队列同步器,是一种用来构建锁和同步器的框架。我们常见的并发锁ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁。当我仔细研究AQS底层加锁原理,发

重大发现,AQS加锁机制竟然跟Synchronized有惊人的相似

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。AQS全称AbstractQueuedSynchronizer,即抽象队列同步器,是一种用来构建锁和同步器的框架。我们常见的并发锁ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier都是基于AQS实现的,所以说不懂AQS实现原理的,就不能说了解Java锁。当我仔细研究AQS底层加锁原理,发

发现了二分查找的秘密

二分查找(BinarySearch)算法,也叫折半查找算法。1.1、原理分析二分查找是一种非常简单易懂的快速查找算法,其思想在生活中随处可见,比如朋友聚会的时候爱玩的一个猜数游戏,我随机写一个0-100之间的数字,然后大家依次来猜,猜的过程中大家每猜一次我都会告诉大家猜大了还是猜小了,直到有人猜中为止,猜中的人会有一些惩罚措施。这个过程其实就是二分查找思想的一种体现。回到实际的开发场景中,假设有10个订单,其金额分别是:6,12,15,19,24,26,29,35,46,67。请从中找出订单金额为15的订单,利用二分查找的思想我们每次都与区间中间的数据进行大小的比较以缩小查找的范围,下面这幅图

发现了二分查找的秘密

二分查找(BinarySearch)算法,也叫折半查找算法。1.1、原理分析二分查找是一种非常简单易懂的快速查找算法,其思想在生活中随处可见,比如朋友聚会的时候爱玩的一个猜数游戏,我随机写一个0-100之间的数字,然后大家依次来猜,猜的过程中大家每猜一次我都会告诉大家猜大了还是猜小了,直到有人猜中为止,猜中的人会有一些惩罚措施。这个过程其实就是二分查找思想的一种体现。回到实际的开发场景中,假设有10个订单,其金额分别是:6,12,15,19,24,26,29,35,46,67。请从中找出订单金额为15的订单,利用二分查找的思想我们每次都与区间中间的数据进行大小的比较以缩小查找的范围,下面这幅图

发现mybatisplus#Wrapper的一个小坑

什么坑?看如下demo代码:publicvoidgetOne(){LambdaQueryWrapperwrappers=newLambdaQueryWrapper();wrappers.eq(SbhPlatOrder::getOrderId,1L);sbhPlatOrderManager.getOne(wrappers);} 这里要说的是eq方法。该方法在mybatis-plus-core包里的Compare.java接口里,这个eq重载的方法签名如下://在com.baomidou.mybatisplus.core.conditions.interfaces.Compare.java里def

发现mybatisplus#Wrapper的一个小坑

什么坑?看如下demo代码:publicvoidgetOne(){LambdaQueryWrapperwrappers=newLambdaQueryWrapper();wrappers.eq(SbhPlatOrder::getOrderId,1L);sbhPlatOrderManager.getOne(wrappers);} 这里要说的是eq方法。该方法在mybatis-plus-core包里的Compare.java接口里,这个eq重载的方法签名如下://在com.baomidou.mybatisplus.core.conditions.interfaces.Compare.java里def

发现一款 SQL 自动检查神器,再也不用担心 SQL 出错了!

YearningMYSQL是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!开源地址https://gitee.com/cookieYe/Yearning功能介绍1、SQL查询查询导出查询自动补全2、SQL审核流程化工单SQL语句检测SQL语句执行SQL回滚3、历史审核记录4、查询审计5、推送E-mail工单推送钉钉webhook机器人工单推送6、其他LDAP登陆用户权限及管理拼图式细粒度权限划分(共12项独立权限,可随意组合)推荐一个开源免费的SpringBoot最全教程:https:/

发现一款 SQL 自动检查神器,再也不用担心 SQL 出错了!

YearningMYSQL是一个SQL语句审核平台。提供查询审计,SQL审核等多种功能,支持Mysql,可以在一定程度上解决运维与开发之间的那一环,功能丰富,代码开源,安装部署容易!开源地址https://gitee.com/cookieYe/Yearning功能介绍1、SQL查询查询导出查询自动补全2、SQL审核流程化工单SQL语句检测SQL语句执行SQL回滚3、历史审核记录4、查询审计5、推送E-mail工单推送钉钉webhook机器人工单推送6、其他LDAP登陆用户权限及管理拼图式细粒度权限划分(共12项独立权限,可随意组合)推荐一个开源免费的SpringBoot最全教程:https:/

被骗进一个很隐蔽的外包公司,入职一个月才发现,已经有了社保记录,简历污了,以后面试有影响吗?...

职场的套路防不胜防,一不留神就会掉坑,一位网友就被“骗”进了外包公司,他说公司非常隐蔽,入职一个月才发现是外包,但已经有了社保记录,简历污了,不知道对以后面试有影响吗?楼主说,岗位是公司的正式编制,但工作内容是外包项目,入职前后跟hr和领导都确认过,他们都说不是外包公司,但进去之后才发现被骗了。楼主说,这种外包相当于项目外包,即公司接了甲方项目后在自己公司开发,但开发中的架构和中间件都用甲方的,各种需求问题都和甲方确认,给甲方提供核心功能组件。有网友证明确实有这种外包的形式。有人说,这不就是tob业务吗?微软和阿里也干这些事。有人说,只要是接项目的就不怕,简历和面试时说是自研就好了,需求从领导

被骗进一个很隐蔽的外包公司,入职一个月才发现,已经有了社保记录,简历污了,以后面试有影响吗?...

职场的套路防不胜防,一不留神就会掉坑,一位网友就被“骗”进了外包公司,他说公司非常隐蔽,入职一个月才发现是外包,但已经有了社保记录,简历污了,不知道对以后面试有影响吗?楼主说,岗位是公司的正式编制,但工作内容是外包项目,入职前后跟hr和领导都确认过,他们都说不是外包公司,但进去之后才发现被骗了。楼主说,这种外包相当于项目外包,即公司接了甲方项目后在自己公司开发,但开发中的架构和中间件都用甲方的,各种需求问题都和甲方确认,给甲方提供核心功能组件。有网友证明确实有这种外包的形式。有人说,这不就是tob业务吗?微软和阿里也干这些事。有人说,只要是接项目的就不怕,简历和面试时说是自研就好了,需求从领导