自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

define_us的专栏

JAVA深入,python浅出

  • 博客(16)
  • 收藏
  • 关注

原创 数据库原理

一阶段锁协议和两阶段锁协议一阶段锁协议要求事务在执行前对自己需要的所有资源一次性加锁。 二阶段锁协议不要求对自己所需要的所有资源一次性加锁。可以在使用前加锁。但是所有加锁操作必须在所有解锁操作之前。 一阶段锁协议显然符合二阶段锁协议。 二阶段锁协议可能带来死锁。可以证明,如果事务是良构的且是两阶段的,那么任何一个合法的调度都是隔离的。。良构表示非死锁情况,隔离指隔离的最高等级(可串行化)...

2018-06-28 19:36:17 630

原创 Mysql深入浅出之架构

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

2018-06-28 19:19:17 254

原创 SpringMVC-web项目和HttpInvoker

<context:component-scan base-package="com.gdl.service" />从Spring提供的参考手册中我们得知该配置的功能是扫描配置的base-package包下的所有使用了@Component注解的类,并且将它们自动注册到容器中,同时也扫描@Controller,@Service,@Re

2018-06-27 15:16:26 501

原创 JUC之AQS第二部分:共享锁部分

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

2018-06-26 19:30:00 201

原创 JUC之线程池

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

2018-06-26 17:14:14 211

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

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

2018-06-26 10:44:41 399

原创 JUC的AQS的第一部分

部分摘抄自https://www.cnblogs.com/daydaynobug/p/6752837.htmlCLH队列多线程争用资源时会进入此队列 以ReentrantLock为例,state初始化为0,表示未锁定状态。A线程lock()时,会调用tryAcquire()独占该锁并将state+1。此后,其他线程再tryAcquire()时就会失败,直到A线程unlock()到...

2018-06-22 17:21:49 170

原创 JUC中多线程的集合——ConcurrentHashMap

部分摘自http://www.importnew.com/22007.html https://www.cnblogs.com/everSeeker/p/5601861.html一些过时的知识ConcurrentHashMap是一个代码超过6000行的类。绝对跟简单无缘。也绝对不是一片博客能讲的清楚的。下面使一些过时的知识: ConcurrentHashMap采用了分段锁的...

2018-06-22 14:31:17 227

原创 ThreadLocal源代码分析

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

2018-06-22 10:42:58 571

原创 java基础之移位

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

2018-06-20 19:50:30 137

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

参考文献https://www.douban.com/note/523340109/Google protobuf:优点二进制消息,性能好/效率高(空间和时间效率都很不错)proto文件生成目标代码,简单易用序列化反序列化直接对应程序中的数据类,不需要解析后在进行映射(XML,JSON都是这种方式)支持向前兼容(新加字段采用默认值)和向后兼容(忽略新加字段),简化升级...

2018-06-14 11:09:13 165

原创 数据库连接池以及Druid

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

2018-06-08 17:10:04 503

原创 JVM原理之栈帧

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

2018-06-01 16:25:22 968

原创 kafka原理详解之各种offset和checkpoint

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

2018-06-01 16:13:43 7629 2

原创 kafka原理详解之各种offset和checkpoint

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

2018-06-01 14:25:20 6731

原创 Class文件结构和字节码

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

2018-06-01 10:04:27 601

空空如也

空空如也

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

TA关注的人

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