- 博客(17)
- 收藏
- 关注
原创 JUC并发编程(下)
AtomicLong原理:CAS+自旋incrementAndGet线程安全,可允许一些性能损耗,要求高精度时可使用保证精度,性能代价AtomicLong是多个线程针对单个热点值value进行原子操作LongAdder原理:CAS+Base+Cell数组分散;空间换时间并分散了热点数据。当需要在高并发下有较好的性能表现,且对值的精确度要求不高时,可以使用保证性能,精度代价:sum求和后还有计算线程修改结果的话,最后结果不够准确。
2023-11-29 08:52:11 829
原创 JUC并发编程(中)
volatile 写之前的操作,都禁止重排序到volatile之后volatile读之后的操作,都禁止重排序到volatile 之前volatile 写之后volatile读,禁止重排序。
2023-11-26 22:17:01 866 1
原创 JVM精讲与GC调优(上)
class文件的结构并不是一成不变的,随着Java虚拟机的不断发展,总是不可避免地会对Class文件结构做出一些调整,但是其基本结构和框架是非常稳定的。class文件的总体结构如下:魔数:class文件的标志class文件版本常量池:可以理解为Class文件之中的资源仓库,它是class文件结构中与其他项目关联最多的数据类型(后面的很多数据类型都会指向此处),也是占用Class文件空间最大的数据项目之一。字面量:文本字符串,声明为final的常量值符号引用。
2023-11-12 21:43:51 90 1
原创 RabbitMQ
当消费者处理消息结束后,应该向RabbitMQ发送一个回执,告知RabbitMQ自己消息处理状态。可以是多个单词的列表,并且以.分割。当消费者出现异常后,消息会不断requeue(重新入队)到队列,再重新发送给消费者,然后再次异常,再次requeue,无限循环,导致mq的消息处理飙升,带来不必要的压力。该插件的原理是设计了一种支持延迟消息功能的交换机,当消息投递到交换机后可以暂存一定时间,到期后再投递到队列。延迟消息:生产者发送消息时指定一个时间,消费者不会立刻收到消息,而是在指定时间之后才收到消息。
2023-10-29 13:20:28 104 1
原创 Spring
AOP称为面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为"切面”(Aspect) ,减少系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。记录操作日志核心是:使用AOP中的环绕通知+切点表达式(找到要记录日志的方法),通过环绕通知的参数获取请求方法的参数(类方法、注解、请求方式等),获取到这些参数以后,保存到数据库。缓存处理Spring中内置的事务处理Spring中的事务是如何实现的Spring支持。
2023-09-13 23:50:22 70
原创 JVM虚拟机
CMS全称Concurrent Mark Sweep,是一款并发的、使用标记-清除算法的垃圾回收器,该回收器是针对老年代垃圾回收的,是一款以获取最短回收停顿时间为目标的收集器,停顿时间短,用户体验就好。栈帧过大会导致线程数变少,例如,机器总内存为512m,目前能活动的线程数则为512个,如果把栈内存改为2048k,那么能活动的栈帧就会减半。加载某一个类,先委托上一级的加载器进行加载,如果上级加载器也有上级,则会继续向上委托,如果该类委托上级没有被加载,子加载器尝试加载该类。堆会GC垃圾回收,而栈不会。
2023-09-06 22:22:38 62
原创 Java并发编程
③并发高、业务执行时间长,解决这种类型任务的关键不在于线程池而在于整体架构的设计,看看这些业务里面某些数据是否能做缓存是第一步,增加服务器是第二步,至于线程池的设置,设置参考(2)③异步线程(线程池)︰为了避免下一级方法影响上一级方法(性能考虑),可使用异步线程调用下一个方法(不需要下一级方法返回值),(闭锁/倒计时锁)用来进行线程同步协作,等待所有线程完成倒计时(一个或者多个线程,等待其他多个线程完成某件事。handler:拒绝策略,当所有线程都在繁忙,workQueue也放满时,会触发拒绝策略。
2023-09-03 22:23:53 38
原创 docker
docker安装docker 下载地址https://docs.docker.com/engine/install/# 1、移除原来的安装包yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-
2021-07-26 23:08:04 2419 1
原创 Typra基本语法使用
基本语法快捷键文章目录基本语法快捷键链接的形式加粗斜体内嵌图片添加下划线添加表格无序列表有序列表代码块引用分割线删除线高亮[toc]会自动将设置为标题的内容设置为目录链接的形式ctrl+k加粗ctrl+b斜体ctrl+i内嵌图片[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x64kkg0b-1624779625565)(图片位置)]或直接拖过来这里是将本地图片放进来,网上的图片好像需要在偏好设置中设置一下(在刚才上传的时候,由于图片上传失败,收到csd
2021-06-27 15:43:21 374
原创 使用shell脚本密码登录服务器之expect
使用shell脚本密码登录服务器之expectexpect的基本使用登录服务器后,执行ls指令#!/usr/bin/expect -f set ip "192.168.247.129"set pass "123456"set timeout 10spawn ssh root@$ipexpect { "*yes/no" { send "yes\r"; exp_continue} "*assword:" { send "$pass\r" }}expect "#"send "ls \r"
2021-06-26 21:54:46 641
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人