H__D  
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 58 下一页

2021年3月30日

摘要: 一、PriorityQueue介绍 PriorityQueue 是基于优先级堆的无限优先级queue 。 优先级队列的元素根据它们的有序natural ordering ,或由一个Comparator在队列构造的时候提供,这取决于所使用的构造方法。 优先队列不允许null元素。 依靠自然排序的优先级 阅读全文
posted @ 2021-03-30 14:49 H__D 阅读(181) 评论(0) 推荐(0)
 
摘要: 原文连接:SynchronousQueue原理解析 源码解析 1、SynchronousQueue.java 1 public class SynchronousQueue<E> extends AbstractQueue<E> 2 implements BlockingQueue<E>, java 阅读全文
posted @ 2021-03-30 11:38 H__D 阅读(217) 评论(0) 推荐(0)
 
摘要: 线程最快累加方案 学习多线程期间,想了一个问题,多个线程累计时,怎样才能使计算又快又安全? 问题:一个初始值为0的变量,10个线程对其进行累计,一个线程对其累加 100_000_000 次,每次加2,请求结果及耗时短的方案? 四种方案,如下: 1 import java.util.concurren 阅读全文
posted @ 2021-03-30 01:23 H__D 阅读(1103) 评论(0) 推荐(0)

2021年3月29日

摘要: 一、Java中的线程池 Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。在开发过程中,合理地使用线程池能够带来3个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到 阅读全文
posted @ 2021-03-29 22:32 H__D 阅读(147) 评论(0) 推荐(0)

2021年3月28日

摘要: 一、ReadWriteLock 读写锁在同一时刻可以允许多个读线程访问,但是在写线程访问时,所有的读线程和其他写线程均被阻塞。读写锁维护了一对锁,一个读锁和一个写锁,通过分离读锁和写锁,使得并发性相比一般的排他锁有了很大提升。 除了保证写操作对读操作的可见性以及并发性的提升之外,读写锁能够简化读写交 阅读全文
posted @ 2021-03-28 23:53 H__D 阅读(534) 评论(0) 推荐(0)
 
摘要: 一、概述 本章使用的是JDK8。 阅读本章请先了解HashMap的实现原理【Java】HashMap 的实现原理 1.1 ConcurrentHashMap跟HashMap,HashTable的对比 1. HashMap不是线程安全: 在并发环境下,可能会形成环状链表(扩容时可能造成,具体原因自行百 阅读全文
posted @ 2021-03-28 17:26 H__D 阅读(223) 评论(0) 推荐(0)

2021年3月26日

摘要: 一、概述 本章使用的是JDK8。 二话不说,一上来就点开源码,发现里面有一段介绍如下: Hash table based implementation of the Map interface. This implementation provides all of the optional map 阅读全文
posted @ 2021-03-26 22:56 H__D 阅读(181) 评论(0) 推荐(0)
 
摘要: 一、概述 本例使用的是JDK8. 一上来,先来看看源码中的这一段注释,我们可以从中提取到一些关键信息: Resizable-array implementation of the List interface. Implements all optional list operations, and 阅读全文
posted @ 2021-03-26 19:47 H__D 阅读(246) 评论(0) 推荐(0)

2021年3月25日

摘要: 模板方法模式 在面向对象程序设计过程中,程序员常常会遇到这种情况:设计一个系统时知道了算法所需的关键步骤,而且确定了这些步骤的执行顺序,但某些步骤的具体实现还未知,或者说某些步骤的实现与具体的环境相关。 例如,去银行办理业务一般要经过以下4个流程:取号、排队、办理具体业务、对银行工作人员进行评分等, 阅读全文
posted @ 2021-03-25 13:13 H__D 阅读(104) 评论(0) 推荐(0)

2021年3月23日

摘要: 一、Atomic包 当程序更新一个变量时,如果多线程同时更新这个变量,可能得到期望之外的值,比如变量i=1,A线程更新i+1,B线程也更新i+1,经过两个线程操作之后可能i不等于3,而是等于2。因为A和B线程在更新变量i的时候拿到的i都是1,这就是线程不安全的更新操作,通常我们会使用synchron 阅读全文
posted @ 2021-03-23 17:47 H__D 阅读(144) 评论(0) 推荐(0)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 58 下一页