
多线程
文章平均质量分 92
大苏打seven
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java学习笔记(多线程):ConditionObject 源码分析
Condition是接口,是其实现类。文中有时候会说Condition,有时候,但我指的是同一个东西。Condition是依附于存在的,提供控制想获取这个锁的线程的方法。和AQS类似,Condition内部有一个队列,但是是单向的,用于封装想获取锁的线程。线程执行await()后,会因park()方法被挂起。过一段时间后线程会唤醒,但需要确定被唤醒的原因。总共有三种情况。被signal()唤醒,那Node应该在AQS中。一切正常可以退出循环中断唤醒,Node还在Condition队列中。原创 2025-04-17 17:36:36 · 769 阅读 · 0 评论 -
Java学习笔记(多线程):ReentrantLock 源码分析
AQS是指抽象类。这个抽象类代表着一种实现并发的方式。具体实现方式是使用volitile修饰state变量,保证了state的可见性和有序性。最后使用CAS改变state的值,保证原子性。那么通过更新state的值来实现的加锁和解锁。下面是关键源代码的截图。的加锁有公平锁和非公平锁两种方式。对于非公平锁,任务一开始会直接尝试通过CAS获取锁,失败后才会进入任务队列。并且进入的时候会再次尝试获取锁。整个过程并不考虑其他节点等了多久,所以才是非公平锁。原创 2025-04-09 00:12:13 · 930 阅读 · 0 评论 -
Java学习笔记(多线程):CompetableFuture
本文是自己的学习笔记,主要参考资料如下JavaSE文档。原创 2024-06-26 22:19:23 · 540 阅读 · 0 评论 -
Java学习笔记(多线程):任务和线程池(未完成)
本文是个人的学习笔记,主要参考以下资料:Java核心技术 卷一,Cay S.Horstmann著,林琪、苏钰涵等译,机械工业出版社出版 代表线程池的类:ExecutorService构造一个线程的代价巨大,因为涉及与操作系统的交互。所以,如果一个程序中有大量生命期很短的线程,那势必会影响都系统的运行。Java中每个Runnable我们都可以看成是一个任务,我们可以在线程执行完一个Runnable的run方法之后不去销毁这个线程,而是让这个线程继续去执行其他Runnable的run方法。这样就可以原创 2020-10-17 16:13:23 · 582 阅读 · 1 评论 -
Java学习笔记(多线程):ThreadLocal
本文简单介绍ThreadLocal的用法,通过源码解释ThreaLocal的存储结构。详解了ThreadLocal内存泄漏的原因,以及如何降低这个风险。原创 2020-09-04 10:50:52 · 470 阅读 · 0 评论 -
Java学习笔记(多线程):基础
本文主要讲解Java的线程基础,比如线程的创建方式原创 2020-05-24 15:44:44 · 1355 阅读 · 0 评论 -
Java学习笔记(多线程):volatile关键字
本文参考以下资料:https://www.cnblogs.com/dolphin0520/p/3920373.html 1、导言2、计算机的写与读3、并发编程中的三个概念3.1、原子性3.2、有序性与指令重排序3.3、可见性4、Java内存模型4.1、Java内存模型对原子性的支持4.2、Java内存模型对可见性的支持1、导言这篇文章对Java的volatile关键字进行较详尽的探讨,讨论其实现机制,使用的注意事项等。volatile与多线程编程有关,用来修饰一变量,使其简单达到synchro原创 2020-08-26 10:49:09 · 389 阅读 · 0 评论