首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    RocketMQ 底层实现原理

    RocketMQ 底层实现原理 RocketMQ 是一款高性能、可扩展的分布式消息中间件,目前已经成为各大互联网公司的主流解决方案之一。...本文将介绍 RocketMQ 的底层实现原理,以及如何使用 JAVA 语言对其进行操作和实践。...RocketMQ 使用内存映射技术将磁盘上的 CommitLog 文件映射到内存中,这样就可以实现快速的消息读写操作。...为了解决这些问题,RocketMQ 实现了多种崩溃恢复机制。 消息队列偏移量 RocketMQ 维护了每个消费者所消费的消息队列偏移量。...RocketMQ 操作实践 以下是使用 JAVA 语言在 RocketMQ 中实现生产者和消费者的示例代码。通过该代码,可以实现在本地环境下发送消息和消费消息。

    55910

    52.说一下 synchronized 底层实现原理?_synchronized底层实现

    本文将简单的介绍 synchronized 的底层实现原理,并且介绍 synchronized 的锁升级机制。...一、synchronized 的底层实现 synchronized 意为同步,它可以用于修饰静态方法,实例方法,或者一段代码块。 它是一种可重入的对象锁。...由于其底层实现机制,synchronized 的锁又称为监视器锁。...偏向锁的锁标志位为 01,通过将 MarkWord 中的线程 ID 改为偏向线程 ID 实现。...重量级锁即原本的监视器锁,基于 JVM 的 Monitor 对象实现,通过将对象的 LockWord 指向对应的 ObjectMonitor 对象,并且通过 ObjectMonitor 中的阻塞队列,等待队列以及当前持有锁的线程指针等参数来实现

    97710

    arraylist linkedlist底层实现原理

    【部分代码参考自leesf的博客内容】 一、ArrayList的数据结构 ArrayList的底层数据结构就是一个数组,数组元素的类型为Object类型,对ArrayList的所有操作底层都是基于数组的...在ArrayList的源码实现中,方法内首先判断传递的元素数组下标参数是否合法,然后将原来的值取出,设置为新的值,将旧值作为返回值返回。...方法实现的逻辑也比较简单,直接循环遍历元素数组,通过equals方法来判断对象是否相同,相同就返回下标,找不到就返回-1。...] = null; 14 // 返回旧值 15 return oldValue; 16 } 十二、ArrayList的优缺点 ArrayList的优点 (1)ArrayList底层以数组实现...,是一种随机访问模式,再加上它实现了RandomAccess接口,因此查找也就是get的时候非常快。

    43040

    死磕Synchronized底层实现

    来源:github.com/farmerjohngit/myblog/issues/12 关于synchronized的底层实现,网上有很多文章了。...大概花费了两周的实现看代码(花费了这么久时间有些忏愧,主要是对C++、JVM底层机制、JVM调试以及汇编代码不太熟),将synchronized涉及到的代码基本都看了一遍,其中还包括在JVM中添加日志验证自己的猜想...在JVM底层,对于这两种synchronized语义的实现大致相同,在后文中会选择一种进行详细分析。...blog.csdn.net/luoweifu/article/details/46613015 锁的几种形式 传统的锁(也就是下文要说的重量级锁)依赖于系统的同步函数,在linux上使用mutex互斥锁,最底层实现依赖于...重量级锁 重量级锁是我们常说的传统意义上的锁,其利用操作系统底层的同步机制去实现Java中的线程同步。 重量级锁的状态下,对象的mark word为指向一个堆中monitor对象的指针。

    56220

    死磕Synchronized底层实现

    转自:farmerjohngit 文章链接 https://github.com/farmerjohngit/myblog/issues/12 关于synchronized的底层实现,网上有很多文章了。...更多文章见个人博客: https://github.com/farmerjohngit/myblog 大概花费了两周的实现看代码(花费了这么久时间有些忏愧,主要是对C++、JVM底层机制、JVM调试以及汇编代码不太熟...在JVM底层,对于这两种synchronized语义的实现大致相同,在后文中会选择一种进行详细分析。...blog.csdn.net/luoweifu/article/details/46613015 锁的几种形式 传统的锁(也就是下文要说的重量级锁)依赖于系统的同步函数,在linux上使用mutex互斥锁,最底层实现依赖于...重量级锁 重量级锁是我们常说的传统意义上的锁,其利用操作系统底层的同步机制去实现Java中的线程同步。 重量级锁的状态下,对象的mark word为指向一个堆中monitor对象的指针。

    44511
    领券