原文:深度解析Java中的那把锁

锁的本质 我们先来讨论锁的出现是为了解决什么问题,锁要保证的事情其实很好理解,同一件事 一个代码块 在同一时刻只能由一个人 线程 操作。 这里所说的锁为排他锁,暂不考虑读写锁的情况 我们在这里打个比方,假设有 个人要过独木桥 独木桥只能承载一个人的重量 ,他们可以排好队一个一个的过,后面一个人看到前面过去了之后他便跟着过去,直到所有的人都过去。 那如果我们用计算机模拟这个过程呢,没错,我们的程序不 ...

2018-08-15 20:28 0 840 推荐指数:

查看详情

基于synchronized深度解析

1. 问题引入 小伙伴们都接触过线程,也都会使用线程,今天我们要讲的是线程安全相关的内容,在这之前我们先来看一个简单的代码案例。 代码案例: 执行结果: 问题说明:在上面的代码我们可以看到,定义了一个线程 runnable 里面对公共成员变量进行 ++ 操作,并循环五次,每次睡眠 ...

Mon Nov 09 16:53:00 CST 2020 0 669
Java各种的原理解析

下图汇总了各种和其适用条件 1. 乐观 VS 悲观 对于同一个数据的并发操作,悲观认为自己在使用数据的时候一定有别的线程来修改数据,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。 Java,synchronized关键字和Lock的实现 ...

Tue Feb 23 18:49:00 CST 2021 0 464
深度解析Java的5个“黑魔法”

现在的编程语言越来越复杂,尽管有大量的文档和书籍,这些学习资料仍然只能描述编程语言的冰山一角。而这些编程语言中的很多功能,可能被永远隐藏在黑暗角落。本文将为你解释其中5个Java隐藏的秘密,可以称其为Java的“黑魔法”。对于这些魔法,会描述它们的实现原理,并结合一些应用场景给出实现 ...

Tue Apr 14 00:12:00 CST 2020 0 875
Java 8 Optional类深度解析

比如Scala、Ceylon等已经将对在核心API解决了这个问题。 新版本的Java,比如Java 8引 ...

Wed Aug 17 06:15:00 CST 2016 1 34539
Java基础(三) String深度解析

String可以说是Java中使用最多最频繁、最特殊的类,因为同时也是字面常量,而字面常量包括基本类型、String类型、空类型。 一. String的使用 1. String的不可变性 String对象一旦在堆创建出来,就无法再修改。因为String对象放在char数组,该数组 ...

Sat Jun 22 18:55:00 CST 2019 0 1919
HadoopPartition深度解析

本文地址:http://www.cnblogs.com/archimedes/p/hadoop-partitioner.html,转载请注明源地址。 旧版 API 的 Partitioner 解析 Partitioner 的作用是对 Mapper 产生的中间结果进行分片,以便将同一分组的数据 ...

Tue Mar 24 23:01:00 CST 2015 2 7170
Java的各种

转自公众号Java建设者 ,作者cxuan Java 分类 Java 有很多,可以按照不同的功能、种类进行分类,下面是我对 Java 中一些常用的分类,包括一些基本的概述 https://www.javashitang.com/wp-content/uploads/2020/01 ...

Mon Jan 27 04:21:00 CST 2020 0 1135
java的理解

在并发编程,经常遇到多个线程访问同一个 共享资源 ,这时候作为开发者必须考虑如何维护数据一致性,在javasynchronized关键字被常用于维护数据一致性。synchronized机制是给共享资源上锁,只有拿到的线程才可以访问共享资源,这样就可以强制使得对共享资源的访问都是顺序 ...

Tue Feb 26 16:45:00 CST 2019 0 843
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM