自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

有志者事竟成

机会往往只给有准备的人

  • 博客(294)
  • 资源 (4)
  • 收藏
  • 关注

原创 八大常用排序算法详细分析 包括复杂度,原理和实现

八大常用排序算法详细分析 包括复杂度,原理和实现如下:1. 冒泡排序1.1 算法原理:S1:从待排序序列的起始位置开始,从前往后依次比较各个位置和其后一位置的大小并执行S2。 S2:如果当前位置的值大于其后一位置的值,就把他俩的值交换(完成一次全序列比较后,序列最后位置的值即此序列最大值,所以其不需要再参与冒泡)。 S3:将序列的最后位置从待排序序列中移除。若移除后的待排序序列不为空则继续执行S1,否则冒泡结束。1.2 算法实

2016-10-09 22:56:26 36439 7

原创 Github 常见缩写含义 WIP/LGTM/AFAIK

Github 常见缩写含义,例如 WIP/LGTM/AFAIK等等。

2022-01-13 16:39:43 2556

原创 Buffer flip()方法用法

Buffer既可以用来读和写。如下:public class NioTest { public static void main(String[] args) { // 分配内存大小为10的缓存区 IntBuffer buffer = IntBuffer.allocate(10); // 往buffer里写入数据 for (int i = 0; i < 5; ++i) { int randomNumb...

2021-10-19 12:43:53 2009

原创 ByteBuf in Netty

ByteBufNetty提供的ByteBuf与JDK的ByteBuffer相比,前者具有卓越的功能性和灵活性。目录1 ByteBuf的API2 ByteBuf类 ----- Netty的数据容器2.1 ByteBuf如何工作的2.2 ByteBuf的使用模式1. 堆缓冲区模式(Heap Buffer)2. 直接缓冲区模式(Direct Buffer)3. 复合缓冲区模式(Composite Buffer)3 字节级操作3.1 随机访问索引3.2 顺序访问索引

2021-09-26 15:48:45 656

原创 推荐阿里云学习网站

非常好用的学习网站,谁用谁知道https://developer.aliyun.com/ebook?spm=a2c6h.12883283.0.0.5f1f4307SovdDphttps://start.aliyun.com/包含计算机、云计算、大数据、机器学习等方向的基础知识,在线部署集群,在线看结果,很方便,赞。

2021-06-29 10:41:40 405 1

原创 看懂Flink整体框架的Job执行流程

参考https://blog.csdn.net/lisenyeahyeah/article/details/100662367

2021-03-25 19:48:39 293

原创 2PC、3PC、Paxos、Raft、ZAB、NWR一致性协议算法集合

https://mp.weixin.qq.com/s/-Vi-LHxkpziPt3T7ZD25UA很详细

2021-02-19 23:21:07 260

转载 Ceph 通俗易懂的解释 Crush 算法

http://www.xuxiaopang.com/2016/11/08/easy-ceph-CRUSH/

2019-03-22 16:59:24 941

原创 Ceph 手动部署SSD

转https://github.com/MartinEmrich/kb/blob/master/ceph/Manual-Bluestore.mdAsceph-deployorceph-diskhad some restrictions, and I just want to know as much of the under-the-hood-stuff as possible, I...

2019-03-11 21:38:12 889

转载 javaOOM异常:OutOfMemoryError: unable to create new native thread

java.lang.OutOfMemoryError共有8种类型,其中java.lang.OutOfMemoryError: unable to create new native thread是很常见的一种,这类错误通常发生在应用试图创建新线程时。 可能原因1. 系统内存耗尽,无法为新线程分配内存2. 创建线程数超过了操作系统的限制解决方案1. 排查应用是否创建了过多的线程...

2018-11-06 18:01:10 3437

转载 Apache Commons CLI 开发工具(CommandLineParser、PosixParser)

概念说明Apache Commons CLI 简介        Apache Commons CLI 是 Apache 下面的一个解析命令行输入的工具包,该工具包还提供了自动生成输出帮助文档的功能。    Apache Commons CLI 支持多种输入参数格式,主要支持的格式有以下几种: POSIX(Portable Operating System Interface o...

2018-10-09 14:37:58 4577

转载 Redis特性与调优

概述Redis是一个开源的,基于内存的结构化数据存储媒介,可以作为数据库、缓存服务或消息服务使用。Redis支持多种数据结构,包括字符串、哈希表、链表、集合、有序集合、位图、Hyperloglogs等。Redis具备LRU淘汰、事务实现、以及不同级别的硬盘持久化等能力,并且支持副本集和通过Redis Sentinel实现的高可用方案,同时还支持通过Redis Cluster实现的数据自...

2018-08-21 10:33:16 849

转载 ceph multisite

参考:multisite介绍:https://www.jianshu.com/p/31a6f8df9a8f配置:https://blog.csdn.net/for_tech/article/details/68927956论文:https://ceph.com/wp-content/uploads/2017/01/Understanding-a-Multi-Site-Ceph-Gateway-In...

2018-05-07 21:36:36 1149

转载 JAVA锁中的CAS

 一 .CAS       在学习java.util.concurrent(简称JUC)包下的类时,了解到了CAS这个概念,整个JUC包的基础也是CAS,ReentrantLock也是基于它的。学习CAS,先从synchronized关键字说起,synchronized关键字能保证最基本的互斥同步。同步是指在多个线程并发访问共享数据时,保证共享数据在同一个时刻只被一个线程使用。而互斥是实现同步的一...

2018-04-10 18:06:04 2607

转载 自旋锁、阻塞锁、可重入锁、悲观锁、乐观锁、读写锁、偏向所、轻量级锁、重量级锁、锁膨胀、对象锁和类锁

1、自旋锁自旋锁可以使线程在没有取得锁的时候,不被挂起,而转去执行一个空循环,(即所谓的自旋,就是自己执行空循环),若在若干个空循环后,线程如果可以获得锁,则继续执行。若线程依然不能获得锁,才会被挂起。使用自旋锁后,线程被挂起的几率相对减少,线程执行的连贯性相对加强。因此,对于那些锁竞争不是很激烈,锁占用时间很短的并发线程,具有一定的积极意义,但对于锁竞争激烈,单线程锁占用很长时间的并发程序,自旋...

2018-04-10 17:38:39 684

原创 idea gradle 类之间不能自动跳转

Go to : View -&gt; Tool Windows -&gt; Gradle.Then press in Refresh Icon

2018-03-28 15:14:14 3107

转载 安全HDFS客户端初始化方式

转自:https://community.hortonworks.com/articles/56702/a-secure-hdfs-client-example.htmlShort Description:Explaining the creation of a secure HDFS client in JavaArticleIt takes about 3 lines of Java code...

2018-03-26 15:32:39 1676

转载 ceph学习笔记和基础知识

ceph源码下载:http://ceph.com/download/主要文档下载连接:http://download.csdn.net/detail/skdkjxy/8149989/*******************/Time:2014-11-6Author:skdkjzz/******************/1、unified中何为radosgw、rbd、ceph-dfs、rados?2、...

2018-03-23 10:49:19 2031

转载 ceph scrub

本文主要介绍 ceph scrub 和 ceph deep scrub 基础知识 和 部分源码。ceph 用来保证数据完整性的机制(read verify)。 Ceph 的OSD 定期启动scrub线程来扫描部分对象,通过与其他副本比对来发现是否一致,如果存在不一致,抛出异常提示用户手动解决。具体讲,scrub 以PG 为单位,对于每一个pg,ceph 分析该pg下所有的object, 产生一个类...

2018-03-23 10:30:59 3428

原创 ceph相关论文/译文

Ceph 论文原文:Ceph:https://www3.nd.edu/~dthain/courses/cse40771/spring2007/papers/ceph.pdfRADOS:https://ceph.com/wp-content/uploads/2016/08/weil-rados-pdsw07.pdfCRUSH Algorithm:https://ceph.com/wp-content...

2018-03-19 11:34:40 1308

转载 tmux使用及个性化配置

1. tmux介绍tmux是一个优秀的终端复用软件,split窗口。可以在一个terminal下打开多个终端。即使非正常掉线,也能保证当前的任务运行,这一点对于远程SSH访问特别有用,网络不好的情况下仍然能保证工作现场不丢失。SSH重新连接以后,就可以直接回到原来的工作环境,不但提高了工作效率,还降低了风险,增加了安全性。tmux完全使用键盘控制窗口,实现窗口的切换功能。2. 安装sudo apt...

2018-03-09 12:29:59 813

转载 Ceph Crush算法详解

Ceph作为最近关注度比较高的统一分布式存储系统,其有别于其他分布式系统就在于它采用Crush(Controlled Replication Under Scalable Hashing)算法使得数据的存储位置都是计算出来的而不是去查询专门的元数据服务器得来的。另外,Crush算法还有效缓解了普通hash算法在处理存储设备增删时带来的数据迁移问题。接下面我会分三篇博文介绍这个重量级的算法,第一篇主...

2018-03-05 21:03:23 5320 1

原创 Ceph简单基础

Ceph基础Ceph是一套高性能,易扩展的,无单点的分布式文件存储系统,基于Sage A. Weil的论文开发,主要提供以下三个存储服务:对象存储(Object Storage),既可以通过使用Ceph的库,利用C, C++, Java, Python, PHP代码,也可以通过Restful网关以对象的形式访问或存储数据,兼容的S3和OpenStack的Swift。块存储(Block Storag...

2018-02-28 21:33:12 932

转载 POSIX 线程详解

简介: POSIX(可移植操作系统接口)线程是提高代码响应和性能的有力手段。在本系列中,Daniel Robbins 向您精确地展示在编程中如何使用线程。其中还涉及大量幕后细节,读完本系列文章,您完全可以运用 POSIX 线程创建多线程程序。线程很有趣了解如何正确运用线程是每一个优秀程序员必备的素质。线程类似于进程。如同进程,线程由内核按时间分片进行管理。在单处理器系统中,内核使用

2018-01-31 21:58:54 1006 1

原创 python 进程池

multiprocessing.dummy replicates the API of multiprocessing but is no more than a wrapper around the threading module.// 实际使用的是线程池而不是进程池如果把from multiprocessing.dummy import Pool改成from multip

2017-11-29 21:28:58 398

原创 Java GC 变量含义(S0 S1 E O P YGC YGCT FGC FGCT GCT)

S0C:年轻代中第一个survivor(幸存区)的容量 (kb)S1C:年轻代中第二个survivor(幸存区)的容量 (kb)S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (kb)S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (kb)EC:年轻代中Eden(伊甸园)的容量 (kb)EU:年轻代中Eden(伊甸园)目前已使用空间 (kb)

2017-08-30 16:48:02 32401 1

原创 python function 传入多个参数; 动态传入不同个数参数

普通传入参数方法在这里不写了。单星号传入元组def print_param_0(*param): print param>>> print_param_0('test','t1',3)('test', 't1', 3)双星号传入mapdef print_param(**params): print params>>> print_param(x=1,y

2017-07-23 00:54:36 23981 1

原创 update multi rows using only one sql; 一句 sql update 多行数据

mysql> select * from states;+----+---------+------------+| id | state | population |+----+---------+------------+| 1 | Alabama | 4822026 || 2 | bbb | 33444 || 3 | Alabama | 48

2017-07-19 12:35:44 841

转载 git 配置文件位置;git配置文件设置

一. 配置文件的存储位置Git相关的配置文件有三个1. /etc/gitconfig:包含了适用于系统所有用户和所有项目的值。2.~/.gitconfig:只适用于当前登录用户的配置。3. 位于git项目目录中的.git/config:适用于特定git项目的配置。对于同一配置项,三个配置文件的优先级是1二. 一些有用的配置项

2017-07-08 15:46:13 39081

转载 sso 原理详解

转自:http://www.cnblogs.com/EzrealLiu/p/5559255.html1. 摘要( 注意:请仔细看下摘要,留心此文是否是您的菜,若浪费宝贵时间,深感歉意!!!)SSO这一概念由来已久,网络上对应不同场景的成熟SSO解决方案比比皆是,从简单到复杂,各式各样应有尽有!开源的有OpenSSO、CAS ,微软的AD SSO,及基于kerberos 的S

2017-06-20 23:17:33 17414 3

原创 mac sublime text 3 列操作

之前就安装了sublime text 3 编辑器,看到别人用列模式操作,好酷,今天试了试。方法:将大量每行都类似的文本粘贴到 sublime text 3 中;command + a 全选;command + shift + L 进入列编辑模式;就可以进列编辑了。技巧:进入列模式以后,可以批量增加或者删除每一行。例如1. 想要在每一行行首都加上逗号(,),则按

2017-05-16 22:39:15 28393

原创 awk 中字符串转数字

在awk中,将数字字符串转换成数字的方法:    id="1245";    当我们需要id是数字时,    id=id+0;

2017-05-09 23:35:04 4397

转载 awk中使用shell中的变量

awk中使用shell中的变量一: "'$var'"这种写法大家无需改变用'括起awk程序的习惯,是老外常用的写法.如:var="test"awk 'BEGIN{print "'$var'"}'这种写法其实际是双括号变为单括号的常量,传递给了awk.如果var中含空格,为了shell不把空格作为分格符,便应该如下使用:var="this is a test"awk 'BEGIN{print "'"

2017-05-09 22:20:47 657

原创 vim 的窗口操作、标签操作

窗口操作命令作用(解释)在当前vim 窗口 :split another_file 即可水平方向分割,显示两个vim 窗口。:split 水平方向分割出一个窗口:vsplit 垂直方向分割出一个窗口:close 关闭窗口Ctrl+W切换窗口,窗口切换先按 ctrl + w 在 按 h, j,k, l 进行移动h到左边窗口,j到下方窗口,k到上方窗口,l到右边窗口先按 c

2017-05-06 01:00:08 875

原创 python list分组操作--简便易读

背景python 中对 list 进行分组,比较常用。当然方法也很多,但有很好,很简便的方法在下面叙述。实例比如将 a=[1,2,3,4,5,6,7,8,9,10,11,12,13,14] 按照长度为3进行分组。传统方法类似下面的方法:#!/usr/bin/pythonL = [3,8,9,4,1,10,6,7,2,5]result = [[],[],[]]for item in L:

2017-04-21 00:11:12 29434 2

转载 linux中shell变量$#,$@,$0,$1,$2的含义解释:

linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行的命令的结束代码(返回值) $- 使用Set命令设定的Flag一览 $* 所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出

2017-04-13 15:28:47 572

转载 shell中各种括号的作用()、(())、[]、[[]]、{}

转自:http://blog.csdn.net/taiyang1987912/article/details/39551385一、小括号,圆括号()1、单小括号 ()   ①命令组。括号中的命令将会新开一个子shell顺序执行,所以括号中的变量不能够被脚本余下的部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。   ②

2017-04-13 15:07:45 388

转载 Git tips: 合并 commit 保持分支干净整洁

原文:https://www.lovelucy.info/git-tips-combine-commits-keep-your-branch-clean.html?utm_source=tuicool&utm_medium=referral本文的读者需要已经了解 基本的 Git 操作和开发流程 。在我们开发完分支后,一般分支上会有很多 commit —— 少不了诸如 “fi

2017-04-13 12:21:28 10787

转载 git rebase 合并多个 Commit

在使用 Git 作为版本控制的时候,我们可能会由于各种各样的原因提交了许多临时的 commit,而这些 commit 拼接起来才是完整的任务。那么我们为了避免太多的 commit 而造成版本控制的混乱,通常我们推荐将这些 commit 合并成一个。首先假设我们有3个 commitgit-log-origin.png我们需要将 2dfbc7e8 和 c4e85

2017-04-13 12:18:41 1817

转载 linux expect详解(ssh自动登录)

shell脚本实现ssh自动登录远程服务器示例:#!/usr/bin/expectspawn ssh root@192.168.22.194expect "*password:"send "123\r"expect "*#"interact 原文链接:http://www.xuanhao360.com/linux-expects/Expect是一个

2017-04-12 11:02:55 494

FPGA学习资料

FPGA的学习资料,以及对于学习的一些总结

2013-07-29

C#sidebar(仿qq)

C#sidebar(仿qq)提供详细使用说明和例子,更实用。

2013-07-02

sidebar(仿qq)

ideBar.dll 第三方控件for C#。在Vs2008下实际使用过。仿QQ头像列表控件,分组控件。另外,还有实用的实例供参考。

2013-07-02

MSP430资料及C语言程序

MSP430学习资料及c语言实例和源程序代码

2013-04-26

空空如也

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

TA关注的人

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