Java并发Fork/Join框架原理解析
前言 最近有个哥们问我一个实际项目的问题,大致如下:需要给一个目录下的所有文件的路径生成对应的MD5签名。这个哥们首先想到的是采用递归的方式处理,这个思路是没问题的,但是完全没有必要自己造轮子。因为Java已经提供了成熟的工具可以使用了,那...
前言 最近有个哥们问我一个实际项目的问题,大致如下:需要给一个目录下的所有文件的路径生成对应的MD5签名。这个哥们首先想到的是采用递归的方式处理,这个思路是没问题的,但是完全没有必要自己造轮子。因为Java已经提供了成熟的工具可以使用了,那...
前言 在前文中非阻塞队列之ConcurrentLinkedQueue源码解析中,深度解析了非阻塞队列的源码。本篇内容将对于阻塞队列的原理、4中处理方式以及7中阻塞队列进行详细解析。 什么是阻塞队列 首先,再一次申明,队列必须是线程安全的,否...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
前言 在Java并发体系中,很多并发场景都离不开队列。比如Java中的定时任务框架、线程池框架、MQ等。本篇文章将记录我的队列学习之旅中的无阻塞队列源码学习。 线程安全性 首先,队列必须是线程安全的,否则,在并发场编程中,就失去了使用队列的...
一. AQS是什么? ASQ是AbstractQueuedSynchronizer的简称,它的类全限定名为:java.util.concurrent.locks.AbstractQueuedSynchronizer. 后文中我们称之为同...
前言 在Java并发的话题中,volatile关键字一定是绕不开的话题。Java程序员都知道,volatile关键字的使用方式,以及它的特性:保证变量在内存中的可见性,但不保证原子性。Java的J.U.C包中volatile关键字可谓是基石...
锁优化的背景 JDK5版本带来了J.U.C包以及其他并发相关的技术,使得Java语言对于并发的支持更加完善。在这个基础上,JDK6为了更加高效的并发,Hotspot虚拟机的开发团队花费了大量的精力去实现各种锁优化的技术:自旋锁、自适应自...
线程安全的定义 当多个线程同时访问同一个对象时,调用这个对象的方法都可以得到正确的结果,那么我们称这个对象是线程安全的。 注意,我们所说的线程安全,是指在多线程下,共享数据是否是安全的,而不是线程本身是否安全。 在Java中我们可以...
前言 对于大多数Java开发人员而言,在实际工作中很少遇到复杂的并发场景。最多可能也就用一下线程池来并发运行程序以提升执行效率。 虽然现状如此,但这并非意味着我们简单掌握并发的应用就可以了。在当今摩尔定律失效的情况下,并发处理成为了计算机发...
1、岛屿的数量 200. 岛屿数量 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包...
1、删除排序链表中的重复元素,保留一个重复元素 83. 删除排序链表中的重复元素 给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。 示例 1: 输入: 1->1->2 输出: 1->2 示例 2: 输入: 1...