自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

进化的深山猿

不断进化,总能迎来美好生活

  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 从AtomicLong到LongAdder,LongAdder的原理

java.util.concurrency.atomic.LongAdder是Java8新增的一个类,提供了原子累计值的方法。根据文档的描述其性能要优于AtomicLong,下图是一个简单的测试对比(平台:MBP):这里测试时基于JDK1.8进行的,AtomicLong 是原子类,JUC下面提供的原子类都是基于Unsafe类实现的,并由Unsafe来提供CAS的能力。CAS (compare-...

2019-01-31 18:31:17 3855 1

原创 binlog的row\statement\mixed模式与具体内容

主从复制的流程主库接收到客户端的更新请求后,执行内部事务的更新逻辑,同时写 binlog。备库 B 跟主库 A 之间维持了一个长连接。主库 A 内部有一个线程,专门用于服务备库 B 的这个长连接。一个事务日志同步的完整过程是这样的:在备库 B 上通过 change master 命令,设置主库 A 的 IP、端口、用户名、密码,以及要从哪个位置开始请求 binlog,这个位置包含文件名和日...

2019-01-28 18:14:22 4664 1

原创 mysql死锁 DeadLock定位与解决

mysql死锁问题定位与解决java后台报错如下java.util.concurrent.ExecutionException: org.springframework.dao.DeadlockLoserDataAccessException:### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQ...

2019-01-24 19:41:33 26842 2

原创 dto序列化的原因、方法、原理、注意点

程序在运行时实例化出对象,这些对象存在于内存中,随着程序运行停止而消失,但如果我们想把某些对象(一般都是各不相同的属性)保存下来或者传输给其他进程,在程序终止运行后这些对象仍然存在,可以在程序再次运行时读取这些对象的信息,或者在其他程序中利用这些保存下来的对象信息恢复成实例对象。这种情况下就要用到对象的序列化和反序列化。 其实很早就知道的,在Java中常见的几个类,如:I...

2019-01-23 21:30:29 5221

原创 线程中断的3+2(自定义执行状态和处理不可中断的阻塞)种方式、setDaemon(守护线程)、Future的方法

Java分为两种线程:用户线程和守护线程守护线程是指在程序运行的时候在后台提供一种通用服务的线程,比如垃圾回收线程就是一个很称职的守护者,并且这种线程并不属于程序中不可或缺的部分。因此,当所有的非守护线程结束时,程序也就终止了,同时会杀死进程中的所有守护线程。反过来说,只要任何非守护线程还在运行,程序就不会终止。守护线程和用户线程的没啥本质的区别:唯一的不同之处就在于虚拟机的离开:如果用户线...

2019-01-23 19:35:34 838

原创 线程等待的四种方式-join/future/countDownLatch/cylicBarrier实现

场景如下:一共三个线程a,b,c,其中c需要用到a,b,执行的结果,应该怎么处理? 1)CountDownLatch,主线程中调用await方法,每个线程调用countdown上面两种方法需要分别调用多次join或future的get方法,不太好,有一种方法是使用CountDownLatch类认知CountDownLatch的方法:await():阻塞主线程,直到countDow...

2019-01-23 18:33:23 2405 1

原创 synchronized,ReentrantLock、ReentrantReadWriteLock和StampedLock

java四种上锁方式原理及适用场景区分synchronized(monitor)、ReentantLock(AQS)、AtomicLong(CAS)、LongAdder(XADD)针对代码块需要同步的锁synchronized---锁竞争不激烈的场景竞争不激烈的时候,各种锁优化机制会发挥作用(如轻量级锁、偏向锁、自旋锁、锁消除等),如果竞争激烈,会使用重量级锁,性能下降。Reentan...

2019-01-23 18:11:31 906

转载 深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue

原 深入剖析java并发之阻塞队列LinkedBlockingQueue与ArrayBlockingQueue 2017年08月31日 13:40:13 zejian_ 阅读数:48047 </div> ...

2019-01-23 17:20:48 226 1

转载 剖析基于并发AQS的共享锁的实现(基于信号量Semaphore)

原 剖析基于并发AQS的共享锁的实现(基于信号量Semaphore) 2017年07月31日 09:33:37 zejian_ 阅读数:17063 </div> <div class="oper...

2019-01-23 17:01:56 144

转载 深入剖析基于并发AQS的(独占锁)重入锁(ReetrantLock)及其Condition实现原理

版权声明:本文为博主原创文章,请尊重原创,未经博主允许禁止转载,保留追究权 https://blog.csdn.net/javazejian/article/details/75043422 </div> <div id...

2019-01-23 16:57:02 207

原创 深入理解Java并发之synchronized实现原理

原。

2019-01-23 16:53:37 326 3

转载 Java并发编程-无锁CAS与Unsafe类及其并发包Atomic,原子更新类

原 Java并发编程-无锁CAS与Unsafe类及其并发包Atomic 2017年07月05日 11:11:36 zejian_ 阅读数:18841 </div> <div class="ope...

2019-01-23 16:53:19 329

原创 js的定时器 实现页面展示的异步刷新 多线程同步实现方式 附进度条js代码

先简单介绍下两个场景结果迅速能出来,采用多线程的同步方式如果逻辑处理比较快,3-5秒任务就会执行完毕,你也可以采用同步多线程同步的方式,代码如下:数据校验使用到的线程实例:if(null!=checkDomain.getValueCompares()){        final List<TableValueCompareDomain> valueCompareDoma...

2019-01-22 17:52:45 1996 1

原创 mysql IO性能参数--binLog和redoLog写日志方式的参数

binlogd的写入方式与参数binlog cache 分配了一片内存,每个线程一个,参数 binlog_cache_size 用于控制单个线程内 binlog cache 所占内存的大小。如果超过了这个参数规定的大小,就要暂存到磁盘。事务提交的时候,执行器把 binlog cache 里的完整事务写入到文件系统的page catche中,并清空 binlog cache,然后在合适的机会进...

2019-01-21 20:03:58 391 1

原创 短连接风暴/慢查询/QPS突增问题 空事务获取与事务判断sql

短连接风暴问题问题:业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内、临时性地提升一些性能方法一:优先断开事务外空闲太久的连接;如果这样还不够,再考虑断开事务内空闲太久的连接。kill id;首先获取事务空闲太久的连接:show processlist,command为sleep的就会处于空闲状态的连接事务内连接和事务外连接区分:select * from inf...

2019-01-21 15:46:39 1236

原创 幻读、间隙锁、行锁、next-key lock、加锁规则、间隙锁导致的死锁、隔离级别设置、for update的理解

假设存在如下表:CREATE TABLE `t` (`id` int(11) NOT NULL,`c` int(11) DEFAULT NULL,`d` int(11) DEFAULT NULL,PRIMARY KEY (`id`),KEY `c` (`c`)) ENGINE=InnoDB;insert into t values(0,0,0),(5,5,5),(10,10,1...

2019-01-17 10:22:50 8577 1

原创 多线程死锁实例与定位

既然可以上锁,那么假如有2个线程,一个线程想先锁对象1,再锁对象2,恰好另外有一个线程先锁对象2,再锁对象1。在这个过程中,当线程1把对象1锁好以后,就想去锁对象2,但是不巧,线程2已经把对象2锁上了,也正在尝试去锁对象1。什么时候结束呢,只有线程1把2个对象都锁上并把方法执行完,并且线程2把2个对象也都锁上并且把方法执行完毕,那么就结束了,但是,谁都不肯放掉已经锁上的对象,所以就没有结果,这种情...

2019-01-15 19:45:52 264

原创 查一条记录sql也很慢的原因

#数据准备 CREATE TABLE `t` (`id` int(11) NOT NULL,`c` int(11) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB;delimiter ;;create procedure idata()begindeclare i int;set i=1;while(i<=100000)d...

2019-01-15 19:21:50 2103 3

原创 后台向前端jsp传输数据的方法

后台代码: @RequestMapping(value="/showGeneralData.action") public String deldelByTableName(String tableName, ModelMap model) { model.addAttribute("tableName",tableName); return "...

2019-01-15 15:06:44 2261

原创 线程/进程,多线程作用 线程的状态 run和start

理解线程、进程和锁为什么需要线程?1充分使用cpu来提高效率,包括两个方面:单个cpu的充分利用,在一个线程处理中,cpu并不是一直处于忙碌状态,典型场景是需要进行磁盘IO,而磁盘的IO与cpu处理相比,速度相差很大,此时cpu就会长久处于空闲状态,所以如果还有别的线程,cpu就可以在空闲时间处理别的线程。注意:单个时间只会有一个线程被处理 针对服务器有多个cpu的场景,单线程只会使...

2019-01-15 10:48:42 312

原创 mysql 慢查询日志参数设置

慢查询日志是否开启show variables like '%slow_query_log%';#如果结果中包含slow_query_log | OFF ,则说明慢日志已经关闭#开启慢查询日志的方式:set global slow_query_log=1;慢查询sql的设置时间查看慢查询sql的设置时间,默认10s,sql执行时间大于该时间的才是慢sql,才会记录到慢查询...

2019-01-10 14:14:28 4491

原创 linux sudo和su

suLinux su命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。实例变更帐号为 root 并在执行 ls 指令后退出变回原使用者su -c ls root变更帐号为 root 并传入 -f 参数给新执行的 shellsu root -f变更帐号为 clsung 并改变工作目录至 clsung 的家目录(home dir)su - clsung...

2019-01-10 14:10:55 533 1

原创 clickhouse的索引结构和查询优化

clickhouse存在很多引擎,下面的所有内容基于MergeTree引擎首先看下官网的主键相关内容:索引效用实例-以MergeTree  为例MergeTree  系列的引擎,数据是由多组部分文件组成的,一般来说,每个月(译者注:CK目前最小分区单元是月)会有几个部分文件(这里的部分就是块)。每一个部分的数据,是按照主键进行字典序排列。例如,如果你有一个主键是(CounterID,D...

2019-01-09 19:41:50 60238 3

原创 网络调试指令 ping telnet traceroute netstat

ifconfig 使用ifconfig <网络接口名称>接口名称:如eth0.即Ip地址信息的网络接口,在linux系统中,每个网络接口都有配置文件分配一个名称,并使用该名称代指该网络接口网络接口的启用和禁用ifconfig eth0 upifconfig eth0 downping的使用成功执行ping命令,说明接收方和发送方计算机都在网络上且可以相互通信ping...

2019-01-09 14:14:28 3091 1

bootstrap-tagsinput-master.zip

tagsinput相关的组件,包括必须的js和css文件;解压后在dist文件夹下,放到自己的项目中就可以使用了

2019-08-14

select2-4.0.8.zip

select2相关的组件,包括必须的js和css文件;解压后在dist文件夹下,放到自己的项目中就可以使用了

2019-08-14

复选下拉框

下拉复选框需要的相关组件,详细可以在https://developer.snapappointments.com/bootstrap-select/里面下载

2018-10-29

空空如也

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

TA关注的人

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