自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-06-03

源码导入goland最近开始学习go语言,想着导入一个开源项目研究一下,边查询资料边搭建环境Windows环境变量配置在E:\learn\go\git_local\go_workspace_1目录下创建src,pkg,bin三个文件夹设置系统变量GOPATH=E:\learn\go\git_local\go_workspace_1设置系统变量GOPROXY=https://goproxy.cn导入源码到goland中在建好的src下执行git clone github项目goland中

2021-06-03 09:24:48 118

原创 Redis变慢问题原因总结

Redis问题排查学习笔记生产上使用Redis经常发生变慢,最近在学习Redis总结下可能产生变慢的原因Redis变慢的可能原因全量查询操作bigkey,排序,并集,交集等操作大量key集中过期内存超过maxmemoryRedis数据量过大,RDB文件与AOF重写都会造成fork进程耗时严重AOF写日志策略为always,导致每次写盘才返回Redis实例机器内存不足,操作系统发生swap,需要从磁盘读取数据性能肯定受到影响进程CPU绑定不合理:网络中断程序与Redis实例绑定在不同的

2020-11-17 21:48:02 458

原创 JDK1.7多线程死循环问题分析笔记

最近看了jdk1.7的HashMap代码发现一段可能引发的死循环逻辑,在多线程扩容阶段,特此记录一下/** * Transfers all entries from current table to newTable. */ void transfer(Entry[] newTable, boolean rehash) { int newCapacity = newTable.length;     // 遍历旧数组得到每一个key再根据新数组的长度重新计算下

2020-11-08 14:59:40 230

原创 单机zookeeper处理过程

接上文单机Zookeeper服务端启动过程这篇文章主要是讲解单机版zk接收到命令后服务端的处理流程1.上文提到启动过程会调用startup方法org.apache.zookeeper.server.NIOServerCnxnFactory#startuppublic synchronized void startup() { //session跟踪器 if (sessionTracker == null) { createSessionTracker();

2020-10-05 10:26:29 143

原创 单机Zookeeper服务端启动过程

单机zookeeper服务端启动过程准备去Github把zookeeper源码down下来,我当时下载的是3.6.1版本的zk源码,单机版zk启动流程还算简单,下面讲解下此过程。1.查看启动脚本zkServer.cmd@echo offREM Licensed to the Apache Software Foundation (ASF) under one or moreREM contributor license agreements. See the NOTICE file distr

2020-10-03 16:23:06 284

原创 Centos7安装mysql笔记

Centos7安装mysql笔记WiFi连接安装mysql登陆失败解决最近搬家了WiFi网络发生变化,centos需要重新连接WiFi特此记录一下连接命令与mysql安装。WiFi连接wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase “用户名” “密码”);dhclient wlp3s0;systemctl start network....

2020-04-02 21:09:10 95

原创 CountDownLatch与CyclicBarrier简单用法

CountDownLatch简单用法代码开发中经常遇到这样的场景:某几个任务执行完成后主线程再继续向下执行,其实实现这个功能非常简单下面列出两种方式。代码如下:示例1import java.util.concurrent.CountDownLatch;public class CountDownLaunchDemo { public static void main(Str...

2020-03-06 18:05:03 124

原创 阻塞队列实现原理

阻塞队列原理java中ArrayBlockingQueue相信都用过,之前仅仅是使用没有了解其背后原理,知其然不知其所以然,这种学习方法是错误的,上学的时候老师总是告诉我们好记性不如烂笔头,相信如果自己手写一遍理解的更深刻。实际上阻塞队列在异步编程经常使用,典型应用生产者消费者模型。代码如下:mport java.util.concurrent.locks.Condition;im...

2020-03-05 21:35:26 627

原创 Semaphore信号量

信号量信号量模型,一个计数器,一个等待队列,三个方法。三个方法init(),up(),down()三个方法init()设置计数器的初始值。up()计数器值加1如果计数器值小于等于0,唤醒等待队列中一个线程,并从等待队列中移除。down()计数器值减一如果值小于0,那么阻塞此线程,否则当前线程继续执行。上述千万别和消费者生产者模型混淆。class Semaphore{ //...

2020-03-05 17:30:30 63

原创 快速排序与归并排序

快速排序与归并排序快速排序快速排序又称”快排”。排序思路:给定一个数组,选定一个分区点pivot,使得小于等于pivot的元素放在左边,大于pivot放在右边,递归使得区间为1那么排序已经是从小到大了。递归公式:quick_sort(p,q) = quick_sort(p,r-1) + quick_sort(r+1,q)满足p>=q则终止。代码实现/** * @Author ...

2020-03-01 19:21:24 173

原创 java常见的排序方法-冒泡,插入,选择

排序方法概述:排序方法有很多种,下面列举几个常用且简单的排序方法-分别是冒泡,插入,选择。public class SortDemo { private int[] arr = new int[]{2,5,3,6,8,1,4,7,10,9}; public static void main(String[] args) { SortDemo sort = n...

2020-02-22 19:17:41 90

原创 Windows下安装elasticsearch集群以及kibana

Windows下安装elasticsearch集群以及kibana软件源启动Kibana安装elasticsearch-head安装安装软件源进入elastic官网下载相应版本软件源1.elasticsearch:https://www.elastic.co/cn/downloads/elasticsearch。2.kibana:https://www.elastic.co/cn/downl...

2019-12-28 21:36:20 356

原创 堆排序

堆排序前言简介前言昨天看了codeship的视频,视频讲到程序员在学习的时候总要输出点什么,不然学了就忘记。我非常有感触,之前学过spring源码,dubbo源码,springbatch源码基本上看完了就忘记,为了巩固知识,我决定定期输出文档来作为自己的学习笔记。刚好最近在学习算法,那么我的博客就从算法写起。简介什么是堆堆是一颗完全二叉树并且堆中每个节点的值都大于等于小于等于子树中每个...

2019-11-30 18:54:55 130

空空如也

空空如也

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

TA关注的人

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