define_us的专栏

JAVA深入,python浅出

数据库原理

一阶段锁协议和两阶段锁协议 一阶段锁协议要求事务在执行前对自己需要的所有资源一次性加锁。 二阶段锁协议不要求对自己所需要的所有资源一次性加锁。可以在使用前加锁。但是所有加锁操作必须在所有解锁操作之前。 一阶段锁协议显然符合二阶段锁协议。 二阶段锁协议可能带来死锁。可以证明,如果事务是良构的...

2018-06-28 19:36:17

阅读数 319

评论数 0

Mysql深入浅出之架构

概述 线程模型 Master Thread Master Thread是一个非常核心的后台线程,主要负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性,包括脏页的刷新、合并插入缓冲(INSERT BUFFER)、UNDO页的回收等。 每秒一次的操作包括: IO Threa...

2018-06-28 19:19:17

阅读数 85

评论数 0

SpringMVC-HttpInvoker

<context:component-scan base-package="com.gdl.service" /&amp...

2018-06-27 15:16:26

阅读数 132

评论数 0

JUC之AQS:共享锁部分

AQS有两种模式,一种是独占模式,一种是共享模式。这篇文章是关于共享模式的原理。 当线程调用acquireShared()申请获取锁资源时,如果成功,则进入临界区。 当获取锁失败时,则创建一个共享类型的节点并进入一个FIFO等待队列,然后被挂起等待唤醒。 当队列中的等待线程被唤醒以后就重新尝试...

2018-06-26 19:30:00

阅读数 36

评论数 0

JUC之线程池和他的应用

创建线程池由工厂类Executors完成。其中newCachedThreadPool,newFixedThreadPool,newSingleThreadExecutor对应的实现类是ThreadPoolExecutor,newScheduledThreadPool对应的实现类是Scheduled...

2018-06-26 17:14:14

阅读数 61

评论数 0

JUC之各种锁的使用:CountDownLatch,CyclicBarrier,ReadWriteLock,Semaphore

CountDownLatch CountDownLatch的典型使用环境是:确保某个操作在其需要的一个多线程操作完成后执行。比如说赛跑者必须等发令枪响。await是阻塞,countDown是倒计,构造函数中指定初始值。只有初始值被countDown到0时,阻塞才会被打开。 /...

2018-06-26 10:44:41

阅读数 77

评论数 0

JUC之AQS

部分摘抄自 https://www.cnblogs.com/daydaynobug/p/6752837.html CLH队列 多线程争用资源时会进入此队列 以ReentrantLock为例,state初始化为0,表示未锁定状态。A线程lock()时,会调用tryAcquire()独占该...

2018-06-22 17:21:49

阅读数 51

评论数 0

JUC中多线程的集合——ConcurrentHashMap

部分摘自 http://www.importnew.com/22007.html https://www.cnblogs.com/everSeeker/p/5601861.html 一些过时的知识 ConcurrentHashMap是一个代码超过6000行的类。绝对跟简单无缘。也绝对不...

2018-06-22 14:31:17

阅读数 45

评论数 0

ThreadLocal源代码分析

下面分析基于JDK1.8。首先来看一个简单的ThreadLocal使用的例子。 public class Test { ThreadLocal<Long> longLocal = new ThreadLocal&a...

2018-06-22 10:42:58

阅读数 94

评论数 0

java基础之移位

基础知识 java里存储的都是补码 原码转换为反码:符号位不变,数值位分别“按位取反” 反码转换为补码:负数为反码末尾末尾+1,正数补码是其本身 计算一个特殊的,比如说-0,原码是1后面31个0,反码则是32个1,在加1就是32个0了(连带着符号位一起进位)。+0的原码是32个0,补码...

2018-06-20 19:50:30

阅读数 45

评论数 0

应用层网络传输的序列化方案Google protobuf,Apache Thrift,Apache Avro

参考文献 https://www.douban.com/note/523340109/ Google protobuf: 优点 二进制消息,性能好/效率高(空间和时间效率都很不错) proto文件生成目标代码,简单易用 序列化反序列化直接对应程序中的数据类,不需要解析后在进行映射(X...

2018-06-14 11:09:13

阅读数 60

评论数 0

数据库连接池Druid

druid 此druid和海量大数据分析的那个druid可完全不是一个东西。 Druid支持所有JDBC兼容的数据库,包括Oracle、MySql、Derby、Postgresql、SQL Server、H2等等。 首先,你要在Spring中配置一个datasorce。 &...

2018-06-08 17:10:04

阅读数 95

评论数 0

JVM原理之栈帧

JVM中的每一个线程拥有一个运行时栈。和汇编语言一样,该栈被分为若干个栈帧。但是,接下来就和汇编语言不同了。 JVM的栈帧包含一个局部变量表,操作数栈,动态链接,和返回地址。 动态连接 class文件中存在着大量的符号引用。只有父类方法,静态方法,私有方法,实例构造器可以在代类加载时转化为直...

2018-06-01 16:25:22

阅读数 124

评论数 0

kafka原理详解之各种offset和checkpoint

每一个分区都是一个顺序的、不可变的消息队列,并且可以持续的添加。分区中的消息都被分配了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是唯一的。 一个分区在文件系统里存储为一个文件夹。文件夹里包含日志文件和索引文件。其文件名是其包含的offset的最小的条目的offset。 ...

2018-06-01 16:13:43

阅读数 2951

评论数 0

kafka原理详解之各种offset和checkpoint

每一个分区都是一个顺序的、不可变的消息队列,并且可以持续的添加。分区中的消息都被分配了一个序列号,称之为偏移量(offset),在每个分区中此偏移量都是唯一的。 一个分区在文件系统里存储为一个文件夹。文件夹里包含日志文件和索引文件。其文件名是其包含的offset的最小的条目的offset。 ...

2018-06-01 14:25:20

阅读数 1100

评论数 0

Class文件结构和字节码

魔数,claa文件版本 魔术是CAFEBABE,class文件版本表示字节码版本,防止低版本JVM运行高版本代码。 常量池 # 字节码 每个字节码命令都有自己的助记符。(和汇编语言相同)。助记符的第一个字母表示自己所操作的数据类型。字节码设计遵循公有设计和私有实现原则。所有J...

2018-06-01 10:04:27

阅读数 164

评论数 0

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