草庐IT

搞懂EventLoop机制

全部标签

Java中锁的优化机制了解吗?

从JDK1.6版本之后,synchronized本身也在不断优化锁的机制,有些情况下他并不会是⼀个很重量级的锁了。优化机制包括⾃适应锁、⾃旋锁、锁消除、锁粗化、轻量级锁和偏向锁。锁的状态从低到⾼依次为⽆锁->偏向锁->轻量级锁->重量级锁,升级的过程就是从低到⾼,降级在⼀定条件也是有可能发⽣的。⾃旋锁:由于⼤部分时候,锁被占⽤的时间很短,共享变量的锁定时间也很短,所有没有必要挂起线程,⽤户态和内核态的来回上下⽂切换严重影响性能。⾃旋的概念就是让线程执⾏⼀个忙循环,可以理解为就是啥也不⼲,防⽌从⽤户态转⼊内核态,⾃旋锁可以通过设置-XX:+UseSpining来开启,⾃旋的默认次数是10次,可以

双亲委派机制

前言Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将其class文件加载到内存生成class对象。Java虚拟机采用了双亲委派机制对class文件进行加载。ClassLoaderJVM中提供了三层的ClassLoader:BootstrapClassLoader,ExtClassLoader,APPClassLoader。BootstrapClassLoader:主要负责加载核心的类库(java.lang.*等),构造ExtClassLoader和APPClassLoader。ExtClassLoader:主要负责加载jre/lib/ext目录下的一些扩展j

RabbitMQ发送方确认机制

1、前言RabbitMQ消息首先发送到交换机,然后通过路由键【routingKey】和【bindingKey】比较从而将消息发送到对应的队列【queue】上。在这个过程有两个地方消息可能会丢失:消息发送到交换机的过程。消息从交换机发送到队列的过程。而RabbitMQ提供了类似于回调函数的机制来告诉发送方消息是否发送成功。这里针对上述的两种情况,RabbitMQ也是给出了以下的应对策略:publisher-confirm:消息到达交换机时会触发。publisher-return:到达交换机但是没有路由到队列,会返回ack以及失败原因。2、publisher-confirm在SpringBoot项

AQS机制

AQS:全名为AbstractQuenedSynchronizer,翻译过来即抽象的队列同步器,是一种用来构建锁和同步器的框架。基于AQS构建同步器,很多并发类都是基于它实现的,这些类都是继承于AbstractQueuedSynchronizer,包括:ReentrantLockSemaphoreCountDownLatchReentrantReadWriteLockSynchronusQueueAbstractQueuedSynchronizer类及重要方法:publicabstractclassAbstractQueuedSynchronizerextendsAbstractOwnable

一文搞懂Win10和Win11区别在哪里!

Windows10于2015年7月发布,Windows11于2021年6月发布。除了视觉效果的差异外,在性能、稳定性和功能上也存在显着差异。因此,请您详细阅读以下内容,充分了解Windows10和11之间的差异,这将帮助您清楚地搞懂Windows10和Windows11哪个好,并且快速做出是否将Windows10升级到Windows11的判断。文章目录Win10和Win11区别:性能差异内存管理的改进睡眠模式的改进主浏览器的改进系统缓存的改进游戏性能的改进Win10和Win11区别:稳定性差异Win10和Win11区别:功能差异开始菜单和任务栏多任务处理和外部监视器支持平板电脑模式微软商店兼容

27. Java中的反射机制

1、Java中创建对象的方式new+构造方法反序列化(存储在文件中对象,还原回来)java反射机制2、已经使用反射的场景jdbc加载驱动Class.forName("com.mysql.jdbc.Driver");servletservlet对象有服务器创建com.company.project.servlet.LoginServletmybatis将查询结果封装到指定类型的对象中,mybatis来创建对象3、Java反射的概念在运行过程中,可以动态根据类的地址来获取类的信息(构造方法,成员方法,成员变量),以及动态根据类的信息来创建对象,来调用对象的方法、属性的功能成为反射机制。Java反射

Android 【手撕Glide】--Glide缓存机制

本文源码解析基于Glide4.6.1不知道大家最开始使用Glide的原因是什么?我的原因很简单就是冲着那句Glide.with(this).load(url).into(imageview)去的,再加上Google的推荐,就一直沿用至今。以前也不太了解它,就知道它使用简洁而且很火,不过最近看了一些它的源码设计,算是找到了使用Glide理由。我目前的缘由如下:1、Glide通过高度封装之后,通过外观模式对外提供了非常简洁的API调用,貌似外观模式的很多库都很受欢迎;2、Glide自动感知生命周期,很节约资源,不会内存泄漏;3、超级强大的缓存机制;4、各种图片转换,超级方便。Android【手撕G

【Python数据科学快速入门系列 | 04】Numpy四则运算、矩阵运算和广播机制的爱恨情仇

这是机器未来的第43篇文章原文首发地址:https://blog.csdn.net/RobotFutures/article/details/126493989文章目录1.概述2.四则运算2.1加法2.2减法2.3乘法2.4除法3.矩阵运算3.1np.dot函数3.2np.matmul函数3.3@运算符3.4转换为矩阵,再运算4.numpy的广播机制4.1举例14.2举例24.3举例34.4举例44.5举例55.总结1.概述本文总结了numpy常见的运算,四则运算与矩阵运算,以及它们的区别。同时描述了在形状不满足要求时,在特定情况下仍然可以运算的广播机制。2.四则运算四则运算即是小学时学过的+

ES是一个分布式全文检索框架,隐藏了复杂的处理机制,核心数据分片机制、集群发现、分片负载均衡请求路由

ES是一个分布式框架,隐藏了复杂的处理机制,核心数据分片机制、集群发现、分片负载均衡请求路由。ES的高可用架构,总体如下图:说明:本文会以pdf格式持续更新,更多最新尼恩3高pdf笔记,请从下面的链接获取:语雀或者码云ES基本概念名词Cluster代表一个集群,集群中有多个节点,其中有一个为主节点,这个主节点是可以通过选举产生的,主从节点是对于集群内部来说的。es的一个概念就是去中心化,字面上理解就是无中心节点,这是对于集群外部来说的,因为从外部来看es集群,在逻辑上是个整体,你与任何一个节点的通信和与整个es集群通信是等价的。Shards代表索引分片,es可以把一个完整的索引分成多个分片,这

7.一文搞懂Flink中窗口的概念

1.前言在上一篇文章当中说了,如果需要进行双流join操作,可以选择在窗口的范围内进行,join操作会以窗口范围内的所有数据做innerjoin,然后将匹配到的所有数据交给计算函数进行处理,这就是窗口join的执行方式,但是这里也有一个之前没有提到过的概念,那就是“窗口”。窗口在数据计算的过程中很常见,它要做的实际上就是在没有尽头的数据流中切割出一段一段的范围区间,然后对这个区间的数据进行相应的计算工作。接下来,我们就本着这个理念出发,去聊聊Flink中窗口到底是什么。2.时间语义看到这里你可能会有个疑问,为什么我要聊窗口,但是这里却写的是时间语义呢?其实这不难理解,大家想一下,窗口本身就是在