摘要:
偏向锁# 偏向第一个拿到锁的线程。 即第一个拿到锁的线程,锁会在对象头 Mark Word 中通过 CAS 记录该线程 ID,该线程以后每次拿锁时都不需要进行 CAS(指轻量级锁)。 如果该线程正在执行同步代码块时有其他线程在竞争(指其他线程尝试 CAS 让 Mark Word 设置自己的线程 ID 阅读全文
摘要:
什么是事务 事务是访问数据库的一个操作序列,数据库应用系统通过事务集来完成对数据库的存取。事务的正确执行使得数据库从一种状态转换为另一种状态。 事务必须服从ISO/IEC所制定的ACID原则。ACID是原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久 阅读全文
摘要:
在之前的文章中,我介绍了分库分表的几种表现形式和玩法,也重点介绍了垂直分库所带来的问题和解决方法。本篇中,我们将继续聊聊水平分库分表的一些技巧。 分片技术的由来 关系型数据库本身比较容易成为系统性能瓶颈,单机存储容量、连接数、处理能力等都很有限,数据库本身的“有状态性”导致了它并不像Web和应用服务 阅读全文
摘要:
先上一个场景:假如你突然想做饭,但是没有厨具,也没有食材。网上购买厨具比较方便,食材去超市买更放心。 实现分析:在快递员送厨具的期间,我们肯定不会闲着,可以去超市买食材。所以,在主线程里面另起一个子线程去网购厨具。 但是,子线程执行的结果是要返回厨具的,而run方法是没有返回值的。所以,这才是难点, 阅读全文
摘要:
一、概述 在2017京东校园招聘笔试题中遇到了描述ThreadLocal的实现原理和内存泄漏的问题,之前看过ThreadLocal的实现原理,但是网上有很多文章将的很乱,其中有很多文章将ThreadLocal与线程同步机制混为一谈,特别注意的是ThreadLocal与线程同步无关,并不是为了解决多线 阅读全文
摘要:
推荐阅读: (牛客网)左神算法与数据结构对比马士兵P8架构技术 带你深入浅出Java虚拟机JVM的究极特性 靠一个HashMap的讲解打动了头条面试官,我的秘诀是 预备知识 位运算知识 位运算操作是由处理器支持的底层操作,底层硬件只支持01这样的数字,因此位运算运行速度很快。尽管现代计算机处理器拥有 阅读全文
摘要:
了解什么是内存碎片? 大量的实例对象在堆内存新生代中因为没有了栈内存的局部变量的引用,而成为新生代中需要被垃圾回收的垃圾对象.此时垃圾对象被回收之后,垃圾对象所占用的内存区域就成为了内存碎片. 了解什么是新生代的复制算法? 因为内存碎片的原因,可能导致大量的垃圾对象虽然被回收了.但是内存区域都是一小 阅读全文
摘要:
redis的五种数据结构原理分析 本章主要内容 简单介绍redis redis中的五种数据结构分析 应用场景分析 总结 关于Redis redis是一个开源的使用C语言编写的一个kv存储系统,是一个速度非常快的非关系远程内存数据库。它支持包括String、List、Set、Zset、hash五种数据 阅读全文
摘要:
redis的各个数据结构常用功能 结构类型 常用命令 使用场景 String set、get、mset、mget、incr 缓存、计数器、session、限速(发短息间隔) List rpush、lpop、lrange、lindex 消息队列(brpop可实现阻塞队列)、文章列表 Hash hset 阅读全文
摘要:
[TOC] 一.场景介绍 最近的一个项目需要用到发布/订阅的信息系统,以做到最新实时消息的通知。经查找后发现了redis pub/sub(发布/订阅的信息系统)可以满足我的开发需求,而且学习成本和使用成本也比较低。 二.什么是redis pub/sub 资料查看 大家在看我的blog的同时可以打开r 阅读全文