原创
Lin~Xu
我心中已经听到来自远方的呼唤,再不需要回过头去关心身后的种种是非。
展开
-
possibly undefined macro: AC_PROG_LIBTOOL
解决方案尝试安装libtool库//centosyum install libtool如果以上安装完还不能解决,请按如下操作:用于查找宏文件的搜索路径是定义的路径--prefix,默认情况下通常为/usr/local。所以对于AUTOCONF将被安装到一个包/usr/local的搜索/usr/local/share/aclocal-APIVERSION和/usr/local/share/aclocal 在包括CentOS7在内的许多发行版中,的七个宏文件libtools都安装在:/原创 2021-04-22 19:41:32 · 665 阅读 · 0 评论 -
DirectIO(O_DIRECT) 详解
DirectIO(O_DIRECT) 详解文章目录DirectIO(O_DIRECT) 详解什么是DirectIO如何使用DirectIODirectIO的性能DirectIO的应用什么是DirectIODirectIO也叫无缓冲IO,裸IO(rawIO),意思是使用无缓冲IO对文件进行读写,不会经过OS Cache。通常,我们使用的文件流读取、内存映射都属于Cache IO,因为将数据写入文件,首先会写入cache,最终再落盘到IO device 或者称为 disk上。cache IO使得我们在原创 2020-10-12 21:21:47 · 11806 阅读 · 0 评论 -
手写C++线程池
目录引言设计实现总结引言由于c++标准库没有提供线程池,但是很多时候,我们需要使用线程池来执行任务从而提高效率,这也避免了频繁的启动、终止线程所带来的损耗。设计由于C++在不同平台有不同的线程实现,因此,为了保证跨平台化与通用性,这里采用标准库的thread可以仿造JDK的ThreadPool原理,提供拒绝策略,提供任务队列利用function<void()>、STL的完美转发、获取返回值等方式来实现实现#ifndef THREAD_POOL_H#define THREAD原创 2020-07-21 10:27:33 · 1484 阅读 · 0 评论 -
Linux安装gflags库
Linux安装gflags库个人使用gflags作为linux-C的命令行解析工具依赖库,记录安装过程以及一些坑:安装克隆源码git clone https://github.com/gflags/gflags编译安装cd gflagsmkdir buildcd buildcmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTAL原创 2020-07-19 17:09:12 · 3275 阅读 · 2 评论 -
分布式锁实现原理之深入redis、浅谈zookeeper与mysql
分布式锁实现原理之深入redis、浅谈zookeeper与mysql文章目录分布式锁实现原理之深入redis、浅谈zookeeper与mysql回顾redis分布式锁redis分布式锁的发展redission分布式锁原理可重入独占锁读写锁读锁实现写锁实现联锁红锁公平锁浅谈mysql、zk分布式锁mysqlzookeeper回顾在上一篇中https://blog.csdn.net/reking...原创 2020-01-29 15:16:59 · 1457 阅读 · 0 评论 -
LRU缓存的设计
LRU缓存设计文章目录LRU缓存设计什么是LRULRU缓存设计设计步骤代码实现什么是LRU概念LRU的初始设计与应用是在操作系统中的虚拟存储模块上,它作为操作系统的虚拟页面置换的算法,得到了广泛的应用。特点与应用由于操作系统的页表大小有限,页面项的数量也有限,当我们访问某个物理块的时候,可能产生缺页中断,这个时候操作系统就会触发调页请求,从外存置换对应的物理页进入内存,提供访...原创 2020-01-10 23:48:46 · 2032 阅读 · 0 评论 -
Spring,SpringBoot如何做组件的扫描
Spring,SpringBoot如何做组件的扫描文章目录Spring,SpringBoot如何做组件的扫描引言Spring扫描假设分析在哪里怎么扫SpringBoot扫描思想体现点扫描相关分析实现很久没有提笔写博客了,手都生疏了,最近有朋友遇到疑惑问我,Spring,SpringBoot是如何做的扫描工作的,在给他解答之后,决定动手写一篇博客说明。引言大家想想spring中是如何做的声明...原创 2020-01-07 14:30:46 · 2270 阅读 · 2 评论 -
业务心得
浅谈业务文章目录浅谈业务引言一、利用bitmap统计持续访问的用户ID与持续访问量二、使用bitmap对学生考勤记录进行统计三、基于BloomFliter的网关设计四、出租车大数据之某车牌是否在某块区域出现过五、redis4.0拓展之bloomfilter引言在过去一段时间里,我接触了在内存不足的情况下对于部分大数据业务的处理,以下是我的处理心得体会。一、利用bitmap统计持续访问的用户...原创 2019-10-19 20:57:58 · 268 阅读 · 5 评论 -
JUC之LockSupport与Condition
JUC之LockSupport与Condition文章目录JUC之LockSupport与Condition一、LockSupport二、Condition1、等待队列处理2、同步队列处理三、Usage一、LockSupportpark()阻塞当前线程调用unpark、或者中断该线程,唤醒unpark()唤醒线程这个工具主要用于对线程进行一个阻塞、唤醒处理。二...原创 2019-08-08 21:50:20 · 217 阅读 · 0 评论 -
Java线程池解读
线程池的饱和策略与阻塞队列文章目录线程池的饱和策略与阻塞队列一、线程池的饱和状态1、线程池的处理过程2、饱和状态的满足条件二、饱和策略AbortPolicyCallerRunsPolicyDiscardOldestPolicyDiscardPolicy三、阻塞队列1、有界队列ArrayBlockingQueue2、无界队列LinkedBlockingQueueSynchronousQueuede...原创 2019-08-10 15:36:13 · 1189 阅读 · 2 评论 -
JUC之ReadWriteLock
JUC之读写锁解读文章目录JUC之读写锁解读一、什么是读写锁二、读写锁的实现三、升降级1、锁降级2、锁升级四、使用场景一、什么是读写锁 读写锁实现的功能就是“读写分离”,读可以并发读,写只能串行写,同时,读的时候不能写,写的时候不能读。但是,如何控制读与写,需要我们手动在读代码块上加读锁,写代码上加写锁。二、读写锁的实现 这里我主要讲一些内部实现原理。读为共享锁final b...原创 2019-08-08 21:49:42 · 170 阅读 · 0 评论 -
JUC之ReentrantLock
JUC之ReentrantLock文章目录JUC之ReentrantLock一、什么是ReentrantLock二、ReentrantLock的实现1、重入机制的实现2、公平机制的实现三、ReentrantLock的应用一、什么是ReentrantLockReentrantLock就是可重入锁,它主要实现了以下两种机制:可重入,一个线程可以重复获取该锁。公平性,它实现了公平锁与非公平锁...原创 2019-08-08 21:48:17 · 153 阅读 · 0 评论 -
JUC之AQS解读
JUC之AQS解读文章目录JUC之AQS解读一、队列同步器二、设计思想1、同步队列节点2、同步状态处理(独占)3、同步状态处理(共享)questionanswer一、队列同步器 AbstractQueueSynchronizer,即队列同步器,通常被称为AQS,是用于构造锁、同步组件的基础框架,它使用int表示同步状态,使用内置FIFO双向队列来完成线程的排队工作。 AQS可以说是整个...原创 2019-08-08 17:21:20 · 643 阅读 · 0 评论 -
JUC之锁架构预览
JUC之锁架构预览文章目录JUC之锁架构预览一、预览架构1.Lock接口2.ReadWriteLock3.AbstractOwnableSynchronizer/AbstractQueuedSynchronizer/AbstractQueuedLongSynchronizer4.LockSupport5.Condition6.ReentrantLock7.ReentrantReadWriteLo...原创 2019-08-08 17:19:55 · 194 阅读 · 0 评论 -
Java多线程之可重入锁概念
Java多线程之可重入锁概念文章目录Java多线程之可重入锁概念一、什么是可重入锁二、demo1、synchronized2、UnReentrantLock3、ReentrantLock三、总结一、什么是可重入锁 在java中,可重入锁分为两种,即synchronized锁以及ReentrantLock及其实现。那么,什么是重入锁呢,其实重入锁就是一个线程能否获取一个已经由它自己持有的锁。...原创 2019-08-08 10:26:34 · 793 阅读 · 0 评论 -
记一道多线程题目(二)
记训练营给师弟的第二道多线程训练一、题目与要求/** * @author linxu * @date 2019 * tips: * 1、交替打印,根据构造器构造的N,构造一个交替任务执行器。 * 2、假如N=1,则打印12,假如N=2.则打印1212。 * 3、效率第一,可有多种解法,适当加分。 */ static class PrintOrdered { p...原创 2019-07-27 10:09:47 · 141 阅读 · 2 评论 -
JUC之CountDownLatch&CyclicBarrier&Semaphore
CountDownLatch&CyclicBarrier&Semaphor文章目录CountDownLatch&CyclicBarrier&Semaphor引言一、CountDownLatch1、使用2、实现原理二、CyclicBarrier概念1、使用2、实现原理三、Semaphor1、应用场景2、使用3、实现原理总结引言 CountDownLatch&a...原创 2019-08-09 09:37:16 · 295 阅读 · 0 评论 -
How to connect MySQL in C++
How to connect MySQL in C++文章目录How to connect MySQL in C++IntroductionPrepare workfind the libarystep.1step.2step.3step.4CodingIntroduction Today I want to share a way connect MySQL database in C+...原创 2019-08-13 21:57:53 · 219 阅读 · 2 评论 -
分布式理论之BASE
BASE理论文章目录BASE理论IntroductionBasically AvailableSoft stateEventually consistentExtensionCausal consistencyRead your writesSession consistencyMonotonic read consistencyMonotonic write consistencyIntro...原创 2019-08-14 10:18:51 · 169 阅读 · 0 评论 -
ThreadLocal的那些事——IT故事汇
关于ThreadLocal的那些事那么,ThreadLocal有什么故事呢?他的起源剖析他的用例原创 2019-03-27 20:56:27 · 1182 阅读 · 0 评论 -
Mapreduce计算框架
Mapreduce计算框架文章目录Mapreduce计算框架介绍计算原理Shuffle混洗的详解Spill环型结构的运行机制MapReduce的瓶颈MergeCopy工作机制Mapreduce1.xA.架构组成B.执行流程Mapreduce2.xA.架构组成B.执行流程C.采用Yarn的优势优化思路demo介绍 MapReduce是一个计算框架,它的原理是Google的MR并行计算思想,它...原创 2019-09-27 12:21:03 · 1681 阅读 · 0 评论 -
那就谈谈跨域问题
从前端、后台的角度谈论跨域文章目录从前端、后台的角度谈论跨域什么是跨域跨域带来的常见问题1、403禁止访问2、使用Cookie(session)丢失从原理上解析什么是跨域浏览器存在着域这个概念,这个概念是为了安全而定义的,理论上来讲,为了保证请求是安全的,应该采用同域部署的方式,但是随着互联网发展,大型的分布式架构出现之后,同域从某种层面上来讲的拓展性不好,也不方便测试,因此,有了跨域这个...原创 2019-09-02 21:16:15 · 308 阅读 · 0 评论 -
可变状态带来的线程安全问题
可变状态带来的线程安全问题文章目录可变状态带来的线程安全问题什么是可变状态隐藏的可变状态如何解决隐藏的可变状态总结什么是可变状态可变状态即一个对象是可变的,换句话说,就是数据是可变的,对于多线程来讲,线程间共享的数据是共享可变状态,对于不变的数据,多线程不用使用锁就可以安全地进行访问。可以这么说,数据的可变状态导致被多线程访问时候存在线程安全问题。隐藏的可变状态在我们的正常理解中,解决可...原创 2019-08-21 11:09:39 · 250 阅读 · 0 评论 -
Spark如何自动提交计算任务
Spark如何自动提交计算任务文章目录Spark如何自动提交计算任务引言Launcher集成SpringBoot附录依赖引言 最近在接触分布式计算这方面,但是遇到了一个问题,就是通常提交一个Spark计算任务,都是打包后通过Spark提交工具进行提交,但是,这样子很不方便,能不能把Spark任务的提交设计成调用型的呢?Launcher Spark Launcher是一个可以代替Spa...原创 2019-08-15 15:42:14 · 596 阅读 · 0 评论 -
交替锁实现线程安全链表
交替锁实现线程安全链表文章目录交替锁实现线程安全链表常见的线程安全链表1、Synchronized2、ReentrantReadWriteLock交替锁的实现原理交替锁的实现源码常见的线程安全链表1、Synchronized @Deprecated public synchronized void insert(int value) { throw new Unsuppor...原创 2019-08-20 17:00:16 · 519 阅读 · 0 评论 -
一种基于内存计算的流式数据处理模型
一种基于内存计算的流式数据处理模型文章目录一种基于内存计算的流式数据处理模型介绍组成重要概念Spark Streaming1、receiver(AWL)2、direct3、demo4、窗口概念总结介绍 这是一种基于Spark内存计算框架的实时流式处理模型,可用于预处理数据、实时数据统计、实时数据分析等方面。组成以下,是这个流式数据处理模型的重要组成部分:Spark Streamin...原创 2019-08-20 09:47:48 · 901 阅读 · 0 评论 -
JUC之原子类
JUC原子类文章目录JUC原子类一、分类二、基本类型1、AtomicInteger2、AtomicLong3、AtomicBoolean三、数组类型1、AtomicIntegerArray四、引用类型1、AtomicReference2、AtomicReferenceArray五、对象属性类型1、AtomicIntegerFieldUpdater(抽象类)demo一、分类Juc原子类可以分为...原创 2019-08-07 20:29:42 · 485 阅读 · 0 评论 -
记一道多线程训练题目
记给训练营师弟们的一道多线程题目文章目录记给训练营师弟们的一道多线程题目一、题目要求二、解法一三、解法二一、题目要求 Task <Execute by Order> tips: 1、开三个线程,这三个线程在一个死循环中不断创建,执行。每个打印的数字的不同。 2、在不使用主线程休眠的情况下来保证三个线程的顺序不变。 3、效率第一、不考虑空间复杂度。 4、以下是...原创 2019-07-22 09:07:44 · 200 阅读 · 0 评论 -
HBaseShell详细使用手册
HBase Shell获得某一个命令的详细信息help ‘status’#help [command]hbase(main):006:0> help 'status'Show cluster status. Can be 'summary', 'simple', 'detailed', or 'replication'. Thedefault is 'summary'. Exa...原创 2019-07-17 20:43:39 · 269 阅读 · 0 评论 -
Feign的详解与使用
Feign详解与使用文章目录Feign详解与使用一、什么是Feign1、概念2、实现依赖二、Feign的使用三、Feign配置四、Feign必须了解的源码五、Feign的注意事项一、什么是Feign1、概念 学过了Ribbon和Hystrix的读者都知道,Ribbon实现客户端负载均衡是通过拦截RestTemplate进行相应的处理。而RestTemplate已经对Http请求进行了一系...原创 2019-07-17 15:40:34 · 2220 阅读 · 0 评论 -
HashMap内部原理的分子级解读
解读HashMap<K,V>内部原理纵然到处都有关于HashMap原理解析,但我还是要对HashMap做一个内部原理的探索,因为每个人看待问题的角度是不同,就像一千个人眼中有一千个哈姆雷特,看似相同的事物,却亦可以给予你更多的惊喜。文章结构:HashMap的整体结构简介应用缺陷HashMap的增删查改PutRemoveGetSetHashMap的内...原创 2019-04-25 22:05:07 · 219 阅读 · 0 评论 -
List之ArrayList、LinkedList、Vector解读
List源码解读为了更好地理解源码,先列出一些重要的接口和类的作用:Collection接口:定义了简单的操作规范:增删查以及判断与指定集合的包含和处理一些交集的方法;注意的一点是1.8之后增加了一些方法,比如有removeIf方法等。List接口:定义了简单的增删查规范(基本上Collection接口中操作方法在这里都有);相比Collection增加了(1.8)基于Comparato...原创 2019-04-15 22:08:55 · 206 阅读 · 0 评论 -
基于反射与动态代理实现注解SQL
基于反射与动态代理实现注解SQL在许多框架中,都应用到反射机制进行简化开发流程,而且,很多时候反射与动态代理的应用是同步的,即结合动态代理去使用同步,今天,我将给大家展示一下基于反射与动态代理实现注解SQL。一、总体步骤总体步骤如下:创建简化注解创建注解扫描管理类创建代理工厂创建应用了简化注解的实际类以上讲了基本需要的内容的步骤,以下就按照这些步骤逐个讲解。1、创建简化注...原创 2019-04-15 22:02:32 · 402 阅读 · 0 评论 -
INNODB之LSN——日志序列号以及应用
log sequence numberLSN即日志序列号(log sequence number),在InnoDb引擎中,该序列号占8个字节长度,且会随着日志的写入而逐渐增大。LSN是该引擎中用于解决数据一致性的一个部分。一.LSN的内容由于LSN可以获取如下等几个信息:数据页的版本信息日志的总量CheckPoint的位置首先从一个命令引入: show engine innod...原创 2019-04-11 19:17:51 · 3146 阅读 · 0 评论 -
Innodb缓冲池刷脏的多线程实现
Innodb缓冲池刷脏的多线程实现简介为了提高性能,大多数的数据库在操作数据时都不会直接读写磁盘,而是中间经过缓冲池,将要写入磁盘的数据先写入到缓冲池里,然后在某个时刻后台线程把修改的数据刷写到磁盘上。MySQL的InnoDB引擎也使用缓冲池来缓存从磁盘读取或修改的数据页,如果当前数据库需要操作的数据集比缓冲池中的空闲页面大的话,当前缓冲池中的数据页就必须进行脏页淘汰,以便腾出足够的空闲页面...原创 2019-04-11 19:15:09 · 470 阅读 · 0 评论 -
深入InnoDB引擎之Master_Thread
Master_Thread的探索引擎的核心工作之一是由Master_thread负责,Master_thread具有最高的线程优先级,有三大版本的Master_thread,分别是:1.0.X之前1.0.X~1.2.X1.2.X每个版本的Master_thread实现都各有不同,不变的是Master_thread在INNODB引擎中的地位。一.Before 1.0.XMast...原创 2019-04-11 19:07:53 · 384 阅读 · 0 评论 -
Spring事务源码篇(二)深入浅出事务架构
Spring的事务架构其实作为一个作者,最大的难度就是怎么把一个复杂的东西简单化,这两天我也思考了很多,最后总结出大多数好的博文都是以一个总——分——总的结构,以及循序渐进的思想,进行一步步地讲解,接下来就将这种模式应用到这上面吧。以下是今天的内容,分为五个部分:事务的四大特性、五大隔离级别、七大传播行为嵌套事务的概念剖析事务架构源码嵌套事务的demo总结一.事务的四大特性...原创 2019-03-30 16:06:18 · 262 阅读 · 0 评论 -
Spring事务应用篇(一)声明式事务与编程式事务
以下为该应用篇章的结构,分为:声明式事务、编程式事务、基于SpringBoot的声明式事务应用三个部分,最后的坑提示不列入篇章结构Spring事务如何应用声明式事务编程式事务基于SpringBoot的声明式事务应用实际引用可能存在的坑说明:应用篇适合对Spring事务的入门,若要深入理解事务框架,//TODO 。。。。引言——事务在讲解Spring事务的应用之前,我们必...原创 2019-03-26 12:22:20 · 706 阅读 · 0 评论 -
Spring之Cache——Spring缓存架构解读
Spring之Cache——Spring缓存架构解读Spring之Cache架构缓存架构的概述缓存架构的实现缓存架构的操作原理Spring Cache概述接下来将对Spring的缓存模块进行解读,主要内容分为:缓存的介绍、缓存的实现、两个部分。由于应用部分在网上的教程比较多,例如采用redis等,这里就不再重复了,只讲解Cache架构。一.缓存架构的概述作用与功能...原创 2019-03-12 21:28:12 · 2247 阅读 · 0 评论 -
代理模式之:静态、动态与cglib代理(java实现)
JAVA 三大代理静态代理动态代理cglib代理一.什么是代理原创 2019-03-20 02:50:13 · 1130 阅读 · 0 评论