墨水记忆 
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于
  • 友情链接
  • 文档
    资料库 Java项目
  • 系列
    Polars中文教程
  • 留言板
  •   
  •   
Java非阻塞IO和异步IO

Java非阻塞IO和异步IO

介绍过 Java NIO 中 Buffer、Channel 和 Selector 的基本操作,主要是一些接口操作,比较简单。 本文将介绍非阻塞 IO 和异步 IO,也就是大家耳熟能详的 NIO 和 AIO。很多初学者可能分不清楚异步和非阻塞的区别,只是在各种场合能听到异步非阻塞这个词。 本文会先介绍并演示阻塞模式,然后引入非阻塞模式来对阻塞模式进行优化,最后再介绍 JDK7 引入的异步 IO,由于

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
Java NIO:sBuffer、Channel和Selector

Java NIO:sBuffer、Channel和Selector

本文将介绍 Java NIO 中三大组件 Buffer、Channel、Selector 的使用。 目录Buffer一个 Buffer 本质上是内存中的一块,我们可以将数据写入这块内存,之后从这块内存获取数据。 java.nio 定义了以下几个 Buffer 的实现,这个图读者应该也在不少地方见过了吧。 其实核心是最后的 ByteBuffer,前面的一大串类只是包装了一下它而已,我们使用最多的通

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
Phaser使用介绍

Phaser使用介绍

本文将介绍 java.util.concurrent.Phaser,一个常常被大家忽略的并发工具。它和 CyclicBarrier 以及 CountDownLatch 很像,但是使用上更加的灵活,本文会进行一些对比介绍。 和之前的文章不同,本文不写源码分析了,就只是从各个角度介绍下它是怎么用的。本文比较简单,我觉得对于初学者大概需要 20 分钟左右吧。 目录使用示例我们来实现一个小需求,启动 10

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
Java读写锁ReentrantReadWriteLock源码分析

Java读写锁ReentrantReadWriteLock源码分析

本文内容:读写锁 ReentrantReadWriteLock 的源码分析,基于 Java7/Java8。 阅读建议:虽然我这里会介绍一些 AQS 的知识,不过如果你完全不了解 AQS,看本文就有点吃力了。 目录使用示例下面这个例子非常实用,我是 javadoc 的搬运工: 12345678910111213141516171819202122232425262728293031323334353

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
Java并发基础之内存模型

Java并发基础之内存模型

阅读本文需要一定的并发基础。本文的主要目的是让大家对于并发程序中的重排序、内存可见性以及原子性有一定的了解,同时要能准确理解 synchronized、volatile、final 几个关键字的作用。 另外,本文还对双重检查形式的单例模式为什么需要使用 volatile 做了深入的解释。 目录并发三问题这节将介绍重排序、内存可见性以及原子性相关的知识,这些也是并发程序为什么难写的原因。 1. 重排

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
Java7/8中的HashMap和ConcurrentHashMap全解析

Java7/8中的HashMap和ConcurrentHashMap全解析

网上关于 HashMap 和 ConcurrentHashMap 的文章确实不少,不过缺斤少两的文章比较多,所以才想自己也写一篇,把细节说清楚说透,尤其像 Java8 中的 ConcurrentHashMap,大部分文章都说不清楚。终归是希望能降低大家学习的成本,不希望大家到处找各种不是很靠谱的文章,看完一篇又一篇,可是还是模模糊糊。 阅读建议:四节基本上可以进行独立阅读,建议初学者可按照 Jav

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
深度解读java线程池设计思想及源码实现

深度解读java线程池设计思想及源码实现

我相信大家都看过很多的关于线程池的文章,基本上也是面试的时候必问的,如果你在看过很多文章以后,还是一知半解的,那希望这篇文章能让你真正的掌握好 Java 线程池。 本文一大重点是源码解析,同时会有少量篇幅介绍线程池设计思想以及作者 Doug Lea 实现过程中的一些巧妙用法。本文还是会一行行关键代码进行分析,目的是为了让那些自己看源码不是很理解的同学可以得到参考。 线程池是非常重要的工具,如果你要

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
深入分析java8编程语言规范:Threads and Locks

深入分析java8编程语言规范:Threads and Locks

在 java 并发编程中,线程和锁永远是最重要的概念。语言规范虽然是规范描述,但是其中也有非常多的知识和最佳实践是值得学习的,相信这篇文章还是可以给很多读者提供学习参考的。 本文主要是翻译 + 解释 Oracle《The Java Language Specification, Java SE 8 Edition》的第17章《Threads and Locks》,原文大概30页pdf,加入了很多自

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
解读java并发队列BlockingQueue

解读java并发队列BlockingQueue

最近得空,想写篇文章好好说说 java 线程池问题,我相信很多人都一知半解的,包括我自己在仔仔细细看源码之前,也有许多的不解,甚至有些地方我一直都没有理解到位。 说到线程池实现,那么就不得不涉及到各种 BlockingQueue 的实现,那么我想就 BlockingQueue 的问题和大家分享分享我了解的一些知识。 本文没有像之前分析 AQS 那样一行一行源码分析了,不过还是把其中最重要和最难理解

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
一行一行源码分析AbstractQueuedSynchronizer(三)

一行一行源码分析AbstractQueuedSynchronizer(三)

这篇文章是 AQS 系列的最后一篇,第一篇,我们通过 ReentrantLock 公平锁分析了 AQS 的核心,第二篇的重点是把 Condition 说明白,同时也说清楚了对于线程中断的使用。 这篇,我们的关注点是 AQS 最后的部分,AQS 共享模式的使用。有前两篇文章的铺垫,剩下的源码分析将会简单很多。 本文先用 CountDownLatch 将共享模式说清楚,然后顺着把其他 AQS 相关的类

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
一行一行源码分析AbstractQueuedSynchronizer(二)

一行一行源码分析AbstractQueuedSynchronizer(二)

文章比较长,信息量比较大,建议在 pc 上阅读。文章标题是为了呼应前文,其实可以单独成文的,主要是希望读者看文章能系统看。 本文关注以下几点内容: 深入理解 ReentrantLock 公平锁和非公平锁的区别 深入分析 AbstractQueuedSynchronizer 中的 ConditionObject 深入理解 Java 线程中断和 InterruptedException 异常 基本

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
一行一行源码分析AbstractQueuedSynchronizer(一)

一行一行源码分析AbstractQueuedSynchronizer(一)

在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。 Google 一下 AbstractQueuedSynchr

2021-10-17
JAVA源码
JAVA 转载 JAVA源码
Spring-AspectJ使用介绍

Spring-AspectJ使用介绍

说过 Spring AOP 的各种用法,包括随着 Spring 的演进而发展出来的几种配置方式。 但是我们始终没有使用到 AspectJ,即使是在基于注解的 @AspectJ 的配置方式中,Spring 也仅仅是使用了 AspectJ 包中的一些注解而已,并没有依赖于 AspectJ 实现具体的功能。 本文将介绍使用 AspectJ,介绍它的 3 种织入方式。 目录AspectJ 使用介绍Asp

2021-10-17
Spring
Spring
1…2627282930…42

Search

墨水记忆 DragonOne
载入天数... 载入时分秒...
总访问量 次 总访客数 人
最好的记忆不如最淡的墨水