H__D |
|
||
2021年3月31日
摘要:
ScheduledThreadPoolExecutor继承自ThreadPoolExecutor。它主要用来在给定的延迟之后运行任务,或者定期执行任务。ScheduledThreadPoolExecutor的功能与Timer类似,但ScheduledThreadPoolExecutor功能更强大、更 阅读全文
摘要:
一、Executor框架 在Java中,使用线程来异步执行任务。Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源。同时,为每一个任务创建一个新线程来执行,这种策略可能会使处于高负荷状态的应用最终崩溃。 Java的线程既是工作单 阅读全文
2021年3月30日
摘要:
阅读本文,请先了解PriorityQueue的使用(【Java】PriorityQueue 源码分析 ),以及AQS等 一、DelayQueue介绍 一个无限制的blocking queue的Delayed元素,其中元素只能在其延迟到期时才被使用。 队列的头是Delayed元素,其延迟期满后保存时间 阅读全文
摘要:
阅读本文前,请先了解AQS,阻塞队列,优先级队列,最小堆数据结构 参考:【Java多线程】队列同步器AQS(十一),【Java多线程】ArrayBlockingQueue阻塞队列原理分析(十六),【Java】PriorityQueue 的实现原理 一、PriorityBlockingQueue介绍 阅读全文
摘要:
一、PriorityQueue介绍 PriorityQueue 是基于优先级堆的无限优先级queue 。 优先级队列的元素根据它们的有序natural ordering ,或由一个Comparator在队列构造的时候提供,这取决于所使用的构造方法。 优先队列不允许null元素。 依靠自然排序的优先级 阅读全文
摘要:
原文连接:SynchronousQueue原理解析 源码解析 1、SynchronousQueue.java 1 public class SynchronousQueue<E> extends AbstractQueue<E> 2 implements BlockingQueue<E>, java 阅读全文
摘要:
线程最快累加方案 学习多线程期间,想了一个问题,多个线程累计时,怎样才能使计算又快又安全? 问题:一个初始值为0的变量,10个线程对其进行累计,一个线程对其累加 100_000_000 次,每次加2,请求结果及耗时短的方案? 四种方案,如下: 1 import java.util.concurren 阅读全文
2021年3月29日
摘要:
一、Java中的线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到 阅读全文
2021年3月28日
摘要:
一、ReadWriteLock 读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。 除了保证写操作对读操作的可见性以及并发性的提升之外,读写锁能够简化读写交 阅读全文
摘要:
一、概述 本章使用的是JDK8。 阅读本章请先了解HashMap的实现原理【Java】HashMap 的实现原理 1.1 ConcurrentHashMap跟HashMap,HashTable的对比 1. HashMap不是线程安全: 在并发环境下,可能会形成环状链表(扩容时可能造成,具体原因自行百 阅读全文
|
Copyright © 2024 H__D
Powered by .NET 9.0 on Kubernetes |