logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Disruptor的使用以及原理

Disruptor是一种高性能的并发框架,用于解决在高并发场景下的数据交换和协调问题。通过无锁的环形缓冲区和批量处理的方式,实现了更高的吞吐量和更低的延迟。它适用于需要处理大量并发事件的场景,如高频交易系统、消息队列等。

#java
Java集合之ArrayList详解

Java集合之ArrayList详解

文章图片
#java
为什么阿里规范超过三张表禁止关联查询

尽管MySQL已经尽可能地进行了优化,但是这几种连接算法的时间复杂度仍然相对较高。这也是为什么不建议在数据库中频繁使用多表JOIN的原因。随着表的数量和数据量的增加,JOIN操作的效率会呈指数级下降。这是因为在多表JOIN时,数据库需要执行大量的比较和匹配操作,而这些操作需要消耗大量的计算资源和时间。尤其是当表的数量和数据量都很大时,数据库需要处理的数据量会变得非常庞大,从而导致查询的响应时间变慢

#数据库
单体架构和微服务架构的区别

单体架构是一种传统的软件架构模式,它将整个应用程序作为一个单一的、完整的单元来构建和部署。在单体架构中,所有的功能模块和组件都集中在一个代码库中,共享同一个数据库和资源。在单体架构中,应用程序通常由三个主要组件组成:用户界面(UI):用户界面负责与用户进行交互,接收输入和显示输出。它可以是一个网页、桌面应用程序或移动应用程序。业务逻辑层:业务逻辑层包含了应用程序的核心功能和业务规则。它处理用户请求

文章图片
#架构#微服务
synchronized是如何保证原子性、可见性、有序性的

在锁未释放之前,其他线程无法再次获取锁,因此通过monitorenter和monitorexit指令可以保证被synchronized修饰的代码在同一时间只能被一个线程访问,其他线程在锁未释放之前无法访问该代码块。例如,线程1获得时间片开始执行,但在执行过程中,CPU时间片耗尽,线程1需要让出CPU。因此,在多线程场景下,由于时间片切换的原因,原子性问题可能会出现。在Java内存模型中,所有的变量

#java
Java集合之LinkedList详解

例如containsAll、removeAll、retainAll等方法,这些方法可以被ArrayList直接继承和使用,从而避免了重复实现这些操作。同时,AbstractCollection也提供了一些抽象方法,例如size、iterator、toArray等方法,这些方法需要由具体的集合类去实现,LinkedList也需要实现这些方法以完成自身的功能。AbstractList是List接口的一

文章图片
#java
CompletionService的基本使用以及原理

CompletionService是Java并发编程中的一个工具类,它实现了一个任务完成的队列,并且可以按照任务完成的顺序来获取任务的结果。CompletionService的主要作用是提供一种方式来处理一批并发执行的任务,并且在它们完成后按照完成的顺序获取结果。它通常与ExecutorService一起使用。使用CompletionService可以将一组任务提交给ExecutorService

文章图片
#java
CAS的使用以及底层原理

CAS(Compare and Swap)是一种无锁操作,通过比较内存中的值与预期值是否相等来实现原子操作,解决并发环境下的数据竞争问题。

#java
找出一个List中每个元素出现的次数

最后,我们遍历结果的Map,并输出每个元素和其出现的次数。然后,我们遍历列表中的每个元素,对于每个元素,我们使用Collections类的frequency()方法来计算该元素在列表中出现的次数,并将结果存储在一个新的集合中。对于每个元素,我们使用Collections类的frequency()方法来计算该元素在列表中出现的次数,并将结果存储在frequency变量中。接下来,我们遍历列表中的每个

实现线程同步的几种方法

线程同步是指在多线程环境下,通过协调和控制线程的执行顺序和访问共享资源的方式,确保线程之间能够按照一定的顺序合作和共享资源,以避免竞争条件和数据不一致的问题。在多线程环境中,由于多个线程同时访问共享资源,可能会导致数据不一致或者竞争条件的问题。线程同步的目的就是保证共享资源的一致性和正确性,避免出现数据错误或者程序异常的情况。线程同步的实现可以通过使用同步关键字、锁对象、条件变量等手段来实现。通过

    共 36 条
  • 1
  • 2
  • 3
  • 4
  • 请选择