CAS存在的问题以及解决方案

CAS存在的问题以及解决方案 CAS虽然很高效的解决原子操作,但是CAS仍然存在三大问题。ABA问题,循环时间长开销大和只能保证一个共享变量的原子操作 ABA问题 因为CAS需要在操作值的时候检查下值有没有发生变化,如果没有发生变化则更新,但是如果一个值原来是A,变成了B,又变成了A,那么使用...

2019-05-24 17:33:22

阅读数 19

评论数 0

《MySQL实战45讲》读后感 21|为什么我只改一行语句,锁这么多

在上一篇文章中,我和你介绍了间隙锁和 next-key lock 的概念,但是并没有说明加锁规则。间隙锁的概念理解起来确实有点儿难,尤其在配合上行锁以后,很容易在判断是否会出现锁等待的问题上犯错。 所以今天,我们就先从这个加锁规则开始吧。 首先说明一下,这些加锁规则我没在别的地方看到过有类似的总结...

2019-05-23 11:03:16

阅读数 36

评论数 0

kafka搭建后生产者消费者Java示例

kafka搭建可以按照官方示例来操作 http://kafka.apache.org/quickstart 说明:本次使用的版本为kafka_2.12-2.2.0 官方示例也有生产者,消费者的 shell版本示例,通常执行起来也很正常 bin/kafka-console-producer.sh -...

2019-05-17 16:54:50

阅读数 15

评论数 0

kafka搭建后zookeeper节点上的变化

具体搭建步骤参见官网文档:http://kafka.apache.org/quickstart 启动zookeeper nohup bin/zookeeper-server-start.sh config/zookeeper.properties > zookeeper.log ...

2019-05-17 14:37:57

阅读数 327

评论数 0

docker入门实践,安装指定版本的mysql镜像

本文以安装mysql5.7为例 查找镜像仓库 含有mysql关键字的记录,这里选择了stars最高,即第1条 $ docker search mysql NAME DESCRIPTION ...

2019-05-16 11:04:51

阅读数 6

评论数 0

supervisor入门教程|安装|启动|实战环节

supervisor是什么 是一个客户端/服务器系统,允许其用户在类UNIX操作系统上控制许多进程(官方解释)。 简单点来讲,就是一个监控脚本运行的工具,不过他可以统一化管理,laravel的队列文档上也有相关使用方式方法,例如: 定时脚本的启动、重启、关闭和日志监控 swoole的启动、重...

2019-04-25 11:54:07

阅读数 43

评论数 0

程序计数器(关于java虚拟机内存的那些事)

什么是程序计数器? 程序计数器是一块 较小 的内存空间,它可以看做是当前线程所执行的字节码的 行号指示器 ;在虚拟机的概念模型里(仅仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解释器工作时,就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳准、异常处...

2019-04-23 19:56:36

阅读数 38

评论数 2

字典树(Trie树) Java实现源码参考

定义 字典树,又称为单词查找树,Tire数,是一种树形结构,它是一种哈希树的变种。用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。 字典树结构对应的Java源码 public class Trie { char val; boolean isEnd = f...

2019-04-14 16:43:02

阅读数 33

评论数 0

Singleton单例模式-【懒汉式-加双重校验锁&防止指令重排序的懒汉式】实现方案中为什么需要加volatile关键字

前提知识点:volatile可以保证可见性+防止指令重排序,synchronized可以保证可见性+防止指令重排序+原子性。 也即是说volatile是synchronized的功能子集,我们知道在【懒汉式-加双重校验锁】的单例模式实现中已经使用了synchronized关键字,那为什么还需要加v...

2019-04-09 20:00:42

阅读数 66

评论数 0

jdk中synchronized加锁原理以及新版本的优化

java中每个对象都可作为锁,锁有四种级别,按照量级从轻到重分为:无锁、偏向锁、轻量级锁、重量级锁。并且锁只能升级不能降级。 在讲这三个锁之前,我先给大家讲清楚自旋和对象头的概念。 自旋 现在假设有这么一个场景:有两个线程A,B在竞争一个锁,假设A拿到了,这个时候B被挂起阻塞,一直等待A释放了锁 ...

2019-03-27 20:45:55

阅读数 73

评论数 0

一次堆外内存泄露的排查过程

转载自一次堆外内存泄露的排查过程 https://blog.csdn.net/moakun/article/details/85377879 最近在做一个基于 websocket 的长连中间件,服务端使用实现了 socket.io 协议(基于websocket协议,提供长轮询降级能力) 的 n...

2019-03-07 09:35:41

阅读数 117

评论数 0

Singleton单例模式-如何防止序列化对单例类的攻击?

既然是防止序列化的攻击,简单的做法就是这个单例类不要实现Serializable接口即可(是不是比较简单,嘻嘻),不过呢可能有面试官会问到如果实现了Serializable接口那如何防止破坏单例模式呢? 先来一个“懒汉式-防止指令重排优化的懒汉式”示例,参见 https://blog.csdn....

2019-02-16 18:53:24

阅读数 52

评论数 0

docker入门实践,制作的镜像push到dockerhub供其它机器使用

docker入门实践,制作的镜像push到dockerhub供其它机器使用 前言 在看这一篇之前,可以先回顾一下使用现成的nginx镜像搭建 及 其续集 docker入门实践,实战搭建nginx https://blog.csdn.net/hl_java/article/details/86232...

2019-01-11 11:00:34

阅读数 53

评论数 0

docker入门实践,实战搭建nginx续集,利用Dockerfile制作属于自己的镜像

前言 在看这一篇之前,可以先回顾一下使用现成的nginx镜像在搭建 https://blog.csdn.net/hl_java/article/details/86232900 可以发现,搭建成功后,服务是可以访问的(http://localhost:81/),这个时候你登录到容器(附登录到容器...

2019-01-10 18:50:57

阅读数 86

评论数 0

docker入门实践,实战搭建nginx

查找现成的nginx镜像 可以通过docker search nginx 命令来获取,可以看到有很多,我们一般选取stars最多,即第1个来使用 docker search nginx NAME D...

2019-01-10 14:52:19

阅读数 66

评论数 0

《MySQL实战45讲》读后感 06|全局锁和表锁:给表加个字段怎么有这么多阻碍

收获到的知识点 MySQL里面的锁大致可以分成全局锁、表级锁和行锁三类 全局锁 加全局锁的方法一 flush tables with read lock (FTWRL) 当你需要整个库处于只读状态的时候,可以使用这个命令,之后其它的线程会被阻塞:比如dml(数据的增删改)、ddl(建表、修改表结...

2018-12-14 19:13:07

阅读数 698

评论数 1

《MySQL实战45讲》读后感 03|事务隔离:为什么你改了我还看不见

收获到的知识点 事务支持是在引擎层面实现的,但是并不是所有的引擎都支持事务,比如MySQL原生的MyISAM引擎就不支持事务,这也是MyISAM被 InnoDB取代的原因之一 多个事务同时执行的时候,可能出现这3种情况:脏读(dirty read)、不可重复读(non-repeatable re...

2018-11-26 21:08:32

阅读数 635

评论数 0

《MySQL实战45讲》读后感 02|日志系统:一条SQL更新语句如何执行的

收获到的知识点 当一个表有更新的时候,跟这个表相关的所有缓存都会失效,所以这条语句就会把表T上所有缓存结果清空。(MySQL8.*版本已去掉了查询缓存模块) MySQL中的2种日志类型分别是 redo log(重做日志) 和 binlog(归档日志) 之所以存在这2种类型的日志(redo lo...

2018-11-23 13:56:23

阅读数 3105

评论数 1

linux shell 读取配置文件

随着linux接触的越来越多,我们难免需要从一些配置文件中进行读取配置参数,linux中shell属于脚本型语言,读取时没有其它语言方便,特将用过的一种方式分享给大家 实战代码: $ more a.txt name=hello world age=22 ip=192.168.1.1 $ sed ...

2018-11-13 13:30:21

阅读数 142

评论数 0

MySQL LOAD DATA INFILE - 加载没有主键的文件实战

首先告诉大家关于“MySQL LOAD DATA INFILE - 加载没有主键的文件”是可以操作的,接下来就来实战一把 表imagecode结构可以看到有3列,其中id是自增列。 drop table `imagecode` ; create table `imagecode` ( `i...

2018-11-12 20:42:28

阅读数 326

评论数 0

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