首页
学习
活动
专区
工具
TVP
发布

java相关资料

专栏作者
59
文章
63946
阅读量
16
订阅数
JUC并发编程之CountDownLatch源码详解
关于JUC包下的工具类,到目前为止已经分享了ReentranLock、Semaphore这两个工具类,同样很多前置内容在前面两遍博文中也都要讲到,那么今天所分享的是CountDownLatch工具类、通过前面博文我们知道ReentranLock是独占锁模式、Semaphore是共享锁模式、那么CountDownLatch是什么模式呢?CountDownLatch它是闭锁模式。
黎明大大
2021-07-23
3040
JUC并发编程之Semaphore源码详解
在前面分享的一篇文章中,我分享到了ReentrantLock源码,它是基于AQS进行实现的,那么今天本文分享的同样也是基于AQS实现的Semaphore工具类
黎明大大
2021-07-23
3410
JUC并发编程之ReentrantLock非公平锁源码详解
大家伙好,已经时隔将近一个月没更新博客了,今天分享的内容点为ReentrantLock非公平锁源码,为什么分享这个呢?因为在并发情况下,难免会造成数据安全性问题,而ReentrantLock恰恰也是解决了并发情况下同时一起操作数据的安全性问题,同样该知识点也是基础中的重点啦~
黎明大大
2021-07-23
3160
JUC并发编程之Synchronized关键字详解
在多线程中,有可能会出现多个线程同时访问同一个共享、可变资源的情况,这个资源我们称之其为临界资源;这种资源可能是:对象、变量、文件等。
黎明大大
2021-07-23
3380
JUC并发编程之MESI缓存一致协议详解
经过几篇文章,我一直在讲到并发下可能会导致很多问题的发生,通过volatile又能解决它的可见性和指令重排问题,在阅读我的文章的时候,不知道大家伙是否好奇过在计算机底层,它是如何保证数据的安全性的,volatile为什么能够解决这些问题?那么该文章就来用为简洁的话语来解释MESI协议。
黎明大大
2021-05-18
5800
JUC并发编程之单例模式双重检验锁陷阱
我在上一篇文章聊volatile的时候,埋下了一个问题,在并发情况下单例模式双重检验锁可能会存在的问题,那么本文就来详细分析分析它。
黎明大大
2021-04-16
4450
JUC并发编程之Volatile关键字详解
volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确、完整地理解,以至于许多程序员都习惯不去使用它,遇到需要处理多线程数据竞争问题的时候一律使用synchronized来进行同步。了解volatile变量的语义对了解多线程操作的其他特性很有意义,在本文中我们将介绍volatile的语义到底是什么。由于volatile关键字与Java内存模型(Java Memory Model,JMM)有较多的关联,因此对于JMM内存模型还不是很了解的,可以看我这篇文章 JUC并发编程之JMM内存模型详解
黎明大大
2021-04-16
3070
JUC并发编程之JMM内存模型详解
JMM就是Java内存模型(java memory model)本身是一种抽象的概念,并不真实存在,它描述的是一组规则或规范。因为在不同的硬件生产商和不同的操作系统下,内存的访问有一定的差异,所以会造成相同的代码运行在不同的系统上会出现各种问题。所以java内存模型(JMM)屏蔽掉各种硬件和操作系统的内存访问差异,以实现让java程序在各种平台下都能达到一致的并发效果。
黎明大大
2021-04-16
5140
深入Hotspot源码与Linux内核理解NIO与Epoll
熟练掌握 BIO,NIO,AIO 的基本概念以及一些常见问题是你准备面试的过程中不可或缺的一部分,另外这些知识点也是学习 Netty 的基础吧。
黎明大大
2021-03-25
1.2K0
JAVA集合之ArrayList源码分析
ArrayList是我们开发中非常常用的数据存储容器之一,其底层是数组实现的,我们可以在集合中存储任意类型的数据,ArrayList是线程不安全的,非常适合用于对元素进行查找,效率非常高,且它的时间复杂度为o(1)
黎明大大
2021-03-25
2440
RabbitMQ高级特性之延迟队列
很多时候我们想定时去做某件事情的时候我们会首先想到定时任务,quartz是个不错的选择,但是也有缺点,假如配置在项目中,集群部署会有重复执行的问题,如果持久化在mysql中,解决了集群的问题,但是过于依赖mysql,耦合严重,当然还有日志量庞大、执行时间精度、过于耗费系统资源等等问题。所以这时候使用消息队列中间件的的延时队列就是一个很好得解决方案,我们设置要触发消费的时间和必要的参数入队mq,到时监听queue的消费者自然拿到消息然后去走业务流程,这里介绍的是基于rabbitmq中间件实现的TTL版的延时队列。
黎明大大
2021-03-25
1K0
Spring5.0源码深度解析之Spring是如何利用三级缓存解决循环依赖的问题
Spring已经成为了开发项目的不可缺少的组件了,我们在平常开发项目中难免会遇到以下这些情况,比如说,我有A类和B类,两个业务类都注入到Spring容器里了,且双方都互相注入了,这个时候就会造成循环依赖的问题,相信之前有很多开发者遇到这样的问题吧,不过现在Spring底层已经通过三级缓存来解决了这个循环依赖的问题了。
黎明大大
2021-03-09
1.5K0
手把手教你如何在CentOS7环境下安装部署Redis
在大小型项目开发中,redis已经成为项目架构不可缺少的一部分,作为程序员来说,不只是要会用redis,也需要会部署redis,虽说大部分互联网公司这些部署工作都是由运维来完成的,但是作为开发人员来说,在开发项目的过程中,可能会遇到不可预测的问题,问题可能出现在代码层面,但有些问题也会出现在部署配置方面,如果开发人员连部署都不会,要是出现问题了,要是无法解决岂不是要被炒鱿鱼啦~哈哈哈,不说多了,咋们部署redis走起!
黎明大大
2021-03-09
1.3K0
深入理解Redis的持久化机制
由于redis所有数据一般都在内存中,如果不进行配置持久化,redis一旦发生重启操作,数据全部丢失掉,所以就需要开启redis持久化机制,将数据保存到硬盘中,当redis重启后,底层会读取磁盘文件来进行恢复数据,合理使用持久化机制是成为架构师或运维重要的一步,接下来就来为各位小伙伴介绍redis持久化机制的几种方式
黎明大大
2021-03-09
8020
Redis主从架构的搭建
在大型架构中,redis往往不可能只是单机版本,因为单机redis的架构风险太大了,因为一旦高并发,redis的压力将会非常大,一旦发生了宕机,那将会发生非常大的问题,这是不允许的,所以主从架构至关重要了,那么本文就是来演示如果搭建Redis主从架构。
黎明大大
2021-03-09
7680
Redis哨兵架构搭建以及详解
前面介绍了redis的主从架构模式,主从架构模式只能够帮redis分担读的压力,但是这个架构有一个非常致命的缺陷,一旦master节点挂掉了,整个集群将无法写入数据,这并不符合redis高可用架构的特点。
黎明大大
2021-03-09
6000
RabbitMQ六种队列模式之简单队列模式
RabbitMQ官网提供了七种队列模型,分别是:简单队列、工作队列、发布订阅、路由模式、主题模式、RPC模式,因为RPC模式不是MQ,所以文章系列中不会介绍RPC模式了。
黎明大大
2021-03-09
5860
RabbitMQ六种队列模式之工作队列模式
上文我们了解了 RabbitMQ 六种队列模式中的简单队列,代码也是非常的简单,比较容易理解。
黎明大大
2021-03-09
7750
我们所了解的Redis分布式锁真的就万无一失吗?
在单体架构中,我们处理并发的手段有多种,例如synchronized或使用ReentrantLock等常用手段,但是在分布式架构中,上述所说的就不能解决某些业务的并发问题了,那么接下来我们就开始聊聊分布式锁。
黎明大大
2021-03-09
3740
白话文讲述什么是缓存穿透、缓存雪崩、缓存击穿?
在我们日常开发中,我们存储数据的方式一般都在数据库中,一般业务系统不会存在高并发的情况,也不怎么可能会发生概率性BUG问题,可一旦发涉及了高并发的需求,例如现在年底抢火车票的情景,单一使用数据库来保存数据肯定是不行的,首先我们的DB数据库是面向磁盘的,服务端与数据库交互都会有磁盘读/写操作而且该方式效率以及性能比较慢。
黎明大大
2021-03-09
3710
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档