wxweven 梦想之家

技术成就梦想 | 做一个有梦想的程序猿


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

  • 公益404

ThreadLocal源码深度解析

发表于 2018-03-11 | 分类于 Java并发
| 字数统计 10,184 字 | 阅读时长 45 分钟

想必很多朋友对ThreadLocal并不陌生,今天我们就来一起探讨下ThreadLocal实现原理和相关源码。首先,本文先介绍一下ThreadLocal以及底层结构,然后从ThreadLocal相关的API入手,详细分析ThreadLocal源码和使用时需要注意的地方,最后分析下ThreadLocal中的内存泄露问题。

阅读全文 »

通过实例一行一行分析JVM的invokespecial和invokevirtual指令

发表于 2017-09-15 | 分类于 JVM
| 字数统计 2,791 字 | 阅读时长 12 分钟

1. JVM提供的方法调用指令集

JVM提供了5种方法调用指令,其作用列举如下:

invokestatic:该指令用于调用静态方法,即使用 static 关键字修饰的方法;

阅读全文 »

深入理解Java内存模型(五)——锁

发表于 2016-10-17 | 分类于 Java并发
| 字数统计 3,159 字 | 阅读时长 12 分钟
深入理解Java内存模型(五)——锁

1. 锁的释放-获取建立的happens before 关系

锁是java并发编程中最重要的同步机制。锁除了让临界区互斥执行外,还可以让释放锁的线程向获取同一个锁的线程发送消息。

阅读全文 »

深入理解Java内存模型(四)——volatile

发表于 2016-10-17 | 分类于 Java并发
| 字数统计 3,545 字 | 阅读时长 13 分钟
深入理解Java内存模型(四)——volatile

0.1. volatile的特性

当我们声明共享变量为volatile后,对这个变量的读/写将会很特别。理解volatile特性的一个好方法是:把对volatile变量的单个读/写,看成是使用同一个监视器锁对这些单个读/写操作做了同步。

阅读全文 »

深入理解Java内存模型(三)——顺序一致性

发表于 2016-10-16 | 分类于 Java并发
| 字数统计 2,994 字 | 阅读时长 10 分钟
深入理解Java内存模型(三)——顺序一致性

0.1. 数据竞争与顺序一致性保证

当程序未正确同步时,就会存在数据竞争。java内存模型规范对数据竞争的定义如下:

  1. 在一个线程中写一个变量,
  2. 在另一个线程读同一个变量,
  3. 而且写和读没有通过同步来排序。
阅读全文 »

深入理解Java内存模型(二)——重排序

发表于 2016-10-16 | 分类于 Java并发
| 字数统计 1,823 字 | 阅读时长 7 分钟
深入理解Java内存模型(二)——重排序

0.1. 数据依赖性

如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:写后读、写后写、读后写。

阅读全文 »

深入理解Java内存模型(一)——基础篇

发表于 2016-10-15 | 分类于 Java并发
| 字数统计 3,762 字 | 阅读时长 13 分钟
深入理解Java内存模型(一)——基础篇

0.1. 并发编程模型的分类

在并发编程中,我们需要处理两个关键问题:
  1. 线程之间如何通信
  2. 线程之间如何同步

阅读全文 »

MyBatis-Bug源码解析

发表于 2015-11-02 | 分类于 mybatis
| 字数统计 3,239 字 | 阅读时长 16 分钟

0.1. BUG概述

MyBatis的这个BUG,出现在条件判断标签中,当试图一个定义为String的属性跟一个英文单词比较时,就会出现bug,具体见下图:

阅读全文 »

Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

发表于 2016-10-13 | 分类于 Java并发
| 字数统计 5,433 字 | 阅读时长 24 分钟
Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

在Java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。

阅读全文 »

vim 常用命令

发表于 2020-10-21 | 分类于 Vim
| 字数统计 412 字 | 阅读时长 2 分钟

vimc常用命令

阅读全文 »
12…5
wxweven

wxweven

分享技术 享受生活

49 日志
20 分类
48 标签
GitHub 知乎 微博 豆瓣
Links
  • 码农圈
  • Jark's Blog
  • 王大神的博客
© 2015 - 2020 wxweven
由 Hexo 强力驱动
主题 - NexT.Mist
共109.5k字