自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Synchronized入门到踹门

偏向锁和轻量级锁都是在用户空间就可以完成的,不需要去内核申请mutex,所以这两个都被统称为轻量级锁,而重量级锁需要到内核态去申请mutex,中间还涉及了用户态与内核态之间的切换,很耗费资源、时间,而且最初Synchronized没有锁升级,每次获取都是重量级锁,但是大多情况下却只有一个线程在使用,正因如此,JDK对Synchronized进行了锁优化,引入了这两个轻量级的锁。2、类型指针,即对象指向它的类型元数据的指针,也就是Java虚拟机通过这个指针来确定该对象是那个类的实例。

2023-04-07 16:19:07 144

原创 记录一次线上系统OOM问题的解决过程

排查系统OOM问题实战啦,还不赶紧点进来看看

2021-12-28 12:58:54 445 1

原创 快速入门使用ActiveMQ

MQ老演员了,这篇文章主要是记录ActiveMQ从下载到应用到项目中的去的一个配置、编写的过程让大家快速上配置到应用下载并修改配置首先,下载ActiveMQ,这是官网下载地址:https://activemq.apache.org/components/classic/download/下载下来之后,找到config目录里的activemq.xml文件找到标签,在标签下里添加配置 <!--死信队列--> <policyEntry topic=

2021-07-05 11:13:25 376

原创 Zuul除了做网关还能干什么?

首先,网关能为我们做什么?它能为我们做路由转发,黑、白名单、过滤请求等等等等网关的本质,其实就是一系列的过滤器,记得我们最开始学习过滤器的时候,servlet的doFilter,有没有小伙伴的DNA动了,哈哈我们今天要说的就是利用网关的本质,过滤器,来做灰度发布说之前,先讲讲什么是灰度发布,经常听到这个名词,就是不知道是干嘛的今天,必须得给他整的明明白白的灰度发布,也叫金丝雀发布,说的就是能够平滑过渡的一种发布版本的一种方式,在其上可以进行A/B testing,即让一部分用户继续用产品特性A,

2021-07-03 09:31:40 200 1

原创 Redis的5种数据类型的命令(下)

今天来说剩下三种数据类型的命令,没有看string和list的小伙伴了一番看我上一篇文章呦Redis的5种数据类型的命令(上)hash类型命令hset key field value 插入或修改键为key的field字段的值为value,不存在则创建,存在则修改hsetnx key field value 插入或修改键为key的field字段的值为value,不存在则创建,存在则失败

2021-04-06 08:17:46 214

原创 Redis的5种数据类型的命令(上)

今天先说string和list的命令,剩下的3种留作下一次水,呸,输出文章先告诉大家一个小知识,redis是有库的概念,0-13,每个库是独立的,默认使用0库,指定库进行数据管理使用 key:库号(0-13)string类型命令set key value [EX | PX | KEEPTTL] [NX | XX] [GET]NX 如果存在就不修改XX 不管存不存在直

2021-03-29 10:00:17 258

原创 常用设计模式之单例设计模式

常用设计模式之单例设计模式小伙伴们对于单例设计模式了解有多少呢?懒汉试、饿汉式、还有吗?双重判断…今天我来带大家重新认识一下7种单例设计模式,没错,你没看错,是7种!第一种,饿汉式单例设计模式饿汉式是老熟人了,不多bb,直接上码!类加载到内存后,就实例化一个单例,JVM保证线程安全简单实用,推荐使用唯一缺点就是,不管是否使用,类加载时就完成实例化第二种,懒汉式单例设计模式也是老熟人了,直接上码!解决了饿汉式的一点缺点,但却引入了线程安全问题第三种,synchronized

2021-03-16 10:44:24 142 2

原创 单机最快MQ—Disruptor

单机最快MQ—Disruptor今天来讲讲我所知道的单机最快的MQ,它叫Disruptor先来介绍一下Disruptor,从翻译上来看,Disruptor—分裂、瓦解,Disruptor是国外某个金融、股票交易所开发的,2011年获得Duke奖,为成为单机最快的MQ,性能及高,无锁CAS,单机支持高并发怎么样,心动了没?来来来,让我来带大家学习一下今天的主角—Disruptor大家可以把Disruptor当做是内存里的高效的队列Disruptor简介无锁(CAS)、高并发,使用环形Buffer

2021-02-23 17:19:42 838 4

原创 多线程高并发学习之线程池从入门到入土

多线程高并发学习之线程池从入门到入土​ 临近过年,我又开始放纵自己了,托更好几天,今天中午12点半刚回到老家,带着我的狗子,今天是过年之前最后一个集,大街上可热闹了,我中午吃了饭去外边逛了逛,逛了一圈,想起我已经鸽了好几天了,于是我良心发现,赶紧回到家,打开电脑,开始肝文章。废话不多说,今天来跟大家讲讲线程池从入门到入土在讲线程池之前先说几个相关的类线程池入门前需了解的类ExecutorExecutor是一个接口,只有一个execute方法叫执行,也就是说你可以指定一个线程去执行他的run方法

2021-02-13 16:48:12 150 2

原创 多线程高并发学习之并发容器

多线程高并发学习之并发容器HashMap相关的同步容器前世今生介绍:HashMap是从HashTable演变过来的,HashTable设计之初的意愿是容器的的所有方法必须都得是同步的,所以HashTable的所有方法都是加了synchronized关键字来保证同步,这显然是不太合理的,因为大多数情况下,都是只有一个线程来操作容器,所以又在HashTable之后推出了HashMapHashTable——>全锁操作HashMap——>无锁操作ConcurrentHashMap——&gt

2021-02-13 16:37:38 101 1

原创 多线程高并发学习之ThreadLocal

ThreadLocal介绍:ThreadLocal提供了线程的局部变量,让每个线程都可以通过get/set方法来对局部变量的数据进行操作,不会和其他线程的局部变量产生冲突,实现了线程的数据隔离,比如超市的公共储物柜,每个人都可以使用,但是每个人的物品有都是分隔开来的ThreadLocal实现原理:通过源码可以观察到,当调用ThreadLocal的set方法时,去调用了getMap方法,传入了当前线程,返回了ThreadLocalMap这个ThreadLocalMap其实就是存在于Thre

2021-02-13 16:36:38 112

原创 多线程高并发学习(上)

1、Java中线程的6大状态New状态:刚被创建出来时的状态Runnable状态分为以下两种状态:ReadyY状态:待运行状态/就绪状态Running状态:运行状态Teminated状态:消亡/结束状态,线程执行完毕后的状态,不能继续调用start()方法TimeWaiting状态:等待(时间)状态,等过了某个设定的时间后进入Runnable状态Waiting状态:在运行时如果调用了wait()、join()、park()方法,将会进入等待状态,调用ontify()、o

2021-02-13 16:35:27 223 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除