wtopps的专栏

当你的才华满足不了你的野心时,你应该滚去学习 https://wtopps.github.io

Git 撤销未push的commit操作

问题: 我在Git中提交了错误的文件。我该如何撤销那一次commit呢? 原问题地址: How do I undo the most recent local commits in Git? 解决办法: $ git commit -m "Something terribly misgui...

2019-05-17 14:06:13

阅读数 3

评论数 0

Linux系统性能分析 sar命令详解

前言 sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。 它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。 sar是目前Li...

2019-04-26 16:46:50

阅读数 15

评论数 0

闲聊MySQL:(一)MySQL存储引擎简述

前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。 在MySQL中,支持多种存储引擎,本篇,我们就来聊一聊MySQL中的存储引擎。 本...

2019-04-13 14:30:55

阅读数 14

评论数 0

Redis面试题汇总

1、什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性能最快的K...

2019-04-06 14:29:18

阅读数 139

评论数 0

Linux 如何保护重要进程不被OOM Killer干掉

前言 最近在预发环境上有一个重要的进程隔三差五就被OOM Killer干掉(通过查看CentOS系统日志/var/log/messages揪出来是OOM Killer干的)。该机器上跑着各种进程,内存是有些吃紧。这当然可以通过加大机器内存或者迁走某些进程来解决。但一时又没有多余的机器和内存资源,只...

2019-04-06 10:17:55

阅读数 20

评论数 0

聊聊并发:(十九)ThreadPoolExecutor线程池原理分析

前言 在之前的文章中,我们陆续对concurrent包中的主要的常用类,依次对其原理进行分析,本篇,作为本系列文章的收尾,我们来聊一下并发场景下最为常用的工具——线程池。 ThreadPoolExecutor概述 当我们需要使用线程的时候,可以直接通过Thread实现,但是频繁的手动去创建线程,会...

2019-03-24 13:16:08

阅读数 124

评论数 0

Linux服务器Java进程突然消失排查办法

问题描述 在实际生产环境下,如果我们遇见Java进程突然消失,该如何去排查问题? 思路 可能有几种原因: ①、Java应用程序的问题:发生OOM导致进程Crash 最常见的是发生堆内存异常“java.lang.OutOfMemoryError: Java heap space”,排查步骤如下: ...

2019-03-18 16:03:03

阅读数 143

评论数 1

聊聊并发:(十八)ThreadLocal分析

前言 在前面的文章中,我们陆续对concurrent包中的常用类进行了依次介绍,涵盖范围包括各种锁、并发容器、队列,理解这些类的作用以及原理,可以帮助我们更好的应对并发场景下带来的挑战,如果您还对其中哪些类的实现不太熟悉,建议您阅读一下之前的文章。 本篇,我们来介绍一下ThreadLocal的作用...

2019-03-17 11:55:46

阅读数 42

评论数 0

聊聊并发:(十七)concurrent包并发容器之Queue、BlockingQueue队列原理分析

LinkedBlockingQueue、ArrayBlockingQueue、SynchronousQueue等阻塞队列原理分析 前言 在上一篇中,我们了解了ConcurrentHashMap的实现机制,本篇,我们聊了聊在日常开发场景下非常常用的阻塞队列的实现机制。 阻塞队列介绍 在concurr...

2019-03-15 16:41:56

阅读数 150

评论数 0

聊聊并发:(十六)concurrent包并发容器之ConcurrentHashMap分析

前言 在上一篇文章,我们介绍了concurrent包中的并发集合:CopyOnWriteArrayList,本篇,我们继续了解学习一下另外一个非常常用也是非常重要的一个并发容器:ConcurrentHashMap。 ConcurrentHashMap介绍 ConcurrnetHashMap是Has...

2019-03-10 11:47:33

阅读数 74

评论数 0

高性能缓存类库Caffeine介绍

介绍 Caffeine 是一个高性能、出色的缓存类库,基于Java 8。它的性能非常的出色,API也比较友好,本篇,我们就来介绍一下Caffeine 使用。 特性 Caffeine使用的是一个内存缓存,是基于Google 的 Guava与ConcurrentLinkedHashMap进行实现的。 ...

2019-02-28 23:20:49

阅读数 73

评论数 0

聊聊并发:(十五)concurrent包并发容器之CopyOnWriteArrayList分析

前言 在前面的文章中,我们陆续介绍了concurrent包的各个类,包括几种锁的使用及其实现,并发辅助工具的使用及其实现,本篇开始,我们继续介绍concurrent包中的并发容器的使用及其实现机制。 本篇,我们先来看一下并发容器:CopyOnWriteArrayList。 CopyOnWriteA...

2018-12-26 18:57:02

阅读数 98

评论数 2

Git常用命令

前言 Git是目前非常主流的代码版本控制管理工具,掌握好Git的常用命令对我们日常开发有很大的帮助,下面我们来看一下Git比较常用的命令。 Git配置命令: 查询配置信息 列出当前配置:git config --list 列出repository配置:git config --local --li...

2018-12-26 15:52:35

阅读数 52

评论数 2

聊聊并发:(十四)concurrent包并发辅助类之Semaphore分析

前言 在前几篇文章中, 聊聊并发:(十三)concurrent包并发辅助类之CountDownLatch源码分析 聊聊并发:(十二)concurrent包并发辅助类之CyclicBarrier源码分析 聊聊并发:(七)concurrent包之AbstractQueuedSynchronizer分析...

2018-12-17 20:54:43

阅读数 175

评论数 0

聊聊并发:(十三)concurrent包并发辅助类之CountDownLatch源码分析

前言 聊聊并发:(十二)concurrent包并发辅助类之CyclicBarrier源码分析 上篇文章,我们分析了并发辅助类CyclicBarrier的源码实现,本篇,我们继续聊聊与它功能非常相似的一个类,CountDownLatch类的使用方法以及实现机制。 CountDownLatch介绍 C...

2018-12-11 11:57:19

阅读数 163

评论数 0

聊聊并发:(十二)concurrent包并发辅助类之CyclicBarrier源码分析

前言 在前几篇文章中, 聊聊并发:(九)concurrent包之ReentrantLock分析 聊聊并发:(十一)concurrent包之Condition源码分析 我们对concurrent包中的locks下的几种锁的源码实现进行了分析,了解了它们的实现原理,在开发高并发的程序中,深入理解锁的使...

2018-11-24 13:09:05

阅读数 125

评论数 0

SpringBoot @Conditional注解解析

前言 SpringBoot中提供了@Conditional注解,该注解的官方文档定义:“Indicates that a component is only eligible for registration when all specified conditions match”,意思是只有满足...

2018-11-23 17:53:25

阅读数 57

评论数 0

聊聊并发:(十一)concurrent包之Condition源码分析

前言 在前几篇文章中, 聊聊并发:(九)concurrent包之ReentrantLock分析 聊聊并发:(八)concurrent包之AbstractQueuedSynchronizer源码实现分析 聊聊并发:(七)concurrent包之AbstractQueuedSynchronizer...

2018-11-17 14:12:33

阅读数 158

评论数 0

Springboot @ConditionalOnResource 解决无法读取外部配置文件问题

前言 最近在开发存储层基础中间件的过程中,使用到了@ConditionalOnResource这个注解,使用该注解的目的是,注解在Configuration bean上,在其加载之前对指定资源进行校验,是否存在,如果不存在,抛出异常;该注解支持传入多个变量,但是当我们希望本地代码中不存在配置文件,...

2018-11-15 21:00:37

阅读数 626

评论数 1

聊聊并发:(十)concurrent包之ReentrantReadWriteLock分析

前言 在前面的文章中,我们陆续介绍了java.util.concurrent.locks包中的一些与锁相关的核心类,之前没有了解过的读者可以通过下面的链接进行查看, 聊聊并发:(九)concurrent包之ReentrantLock分析 聊聊并发:(八)concurrent包之AbstractQu...

2018-11-13 20:15:38

阅读数 138

评论数 0

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