Loading

摘要: AQS实现原理 AQS中维护了一个volatile int state(共享资源)和一个CLH队列。当state=1时代表当前对象锁已经被占用,其他线程来加锁时则会失败,失败的线程被放入一个FIFO的等待队列中,然后会被**UNSAFE.park()**操作挂起,等待已经获得锁的线程释放锁才能被唤醒 阅读全文
posted @ 2021-09-03 11:54 c5p1ng 阅读(387) 评论(2) 推荐(0) 编辑
摘要: 1、HashMap结构 Node是HashMap的一个内部类,实现了Map.Entry接口,本质上是一个映射(键值对)。上图中每一个黄框就是一个Node对象。具体代码如下: /** * Node是单向链表,它实现了Map.Entry接口 */ static class Node<k,v> imple 阅读全文
posted @ 2021-04-18 17:57 c5p1ng 阅读(80) 评论(1) 推荐(0) 编辑
摘要: 从JDK1.6版本之后,synchronized进行了很多优化,性能已今非昔比。优化机制包括自适应锁、自旋锁、锁消除、锁粗化、轻量级锁和偏向锁。 锁的状态从低到高依次为**无锁->偏向锁->轻量级锁->重量级锁,**升级的过程就是从低到高,降级在一定条件也有可能发生。 **自旋锁:**由于大部分时候 阅读全文
posted @ 2021-04-18 17:25 c5p1ng 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 下载redis并安装 wget http://download.redis.io/releases/redis-6.2.1.tar.gz tar -zxvf /usr/local/redis-6.2.1.tar.gz cd /usr/local/redis-6.2.1.tar.gz make 准备配 阅读全文
posted @ 2021-04-15 11:52 c5p1ng 阅读(399) 评论(0) 推荐(0) 编辑
摘要: ArrayList简介 ArrayList是一个数组队列,相当于动态数组。与Java中的数组相比,它的容量能动态增长。它的继承关系如图所示: 和Vector不同,ArrayList中的操作是非线程安全的。 ArrayList属性 ArrayList属性主要就是当前数组长度size,以及存放数组的对象 阅读全文
posted @ 2021-03-07 21:32 c5p1ng 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1. 下载erlang仓库 wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm 安装rpm仓库 rpm -Uvh erlang-solutions-1.0-1.noarch.rpm 如果报错:erro 阅读全文
posted @ 2021-03-03 22:46 c5p1ng 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 1、查看系统负载uptime uptime 高亮显示变化区域 watch -d uptim 2、cpu性能分析工具mpstat 字段的含义 %user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100 %nice 在internal时间段 阅读全文
posted @ 2021-03-03 22:38 c5p1ng 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 一、创建配置文件 **配置文件结构:**这里建三个配置文件,application.yml作为主配置文件配置所有共同的配置;-dev和-local分别配置两种环境下的不同配置内容,如数据库地址等。 application.yml中添加spring.profiles.active配置来动态加载活跃的配 阅读全文
posted @ 2021-03-03 22:31 c5p1ng 阅读(2632) 评论(0) 推荐(0) 编辑
摘要: 关于安全 为MongoDB集群启用认证鉴权 MongoDB服务器在默认安装下不启用鉴权。这意味着每个人都可以直接连接到mongod实例并执行任意数据库操作。 为不同用户分配不同的角色权限 MongoDB支持按角色定义的权限系统。你应该基于“最少权限”准则,显式的为用户分配仅需要的相应权限。 使用中央 阅读全文
posted @ 2021-03-02 09:37 c5p1ng 阅读(567) 评论(0) 推荐(3) 编辑
摘要: 一、系统层面配置 在/etc/sysctl.conf中加入 net.core.somaxconn = 20480 # 定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。默认是128.优化可以根据系统配置做优化 net.core.rmem_default = 262144 net.core 阅读全文
posted @ 2021-03-02 09:17 c5p1ng 阅读(44) 评论(0) 推荐(0) 编辑