
JUC
文章平均质量分 78
JUC
訾博ZiBo
慢慢学,不要停。
展开
-
Java中什么是双检锁
在Java中,双重检查锁定(Double-Checked Locking)是一种多线程编程中用来减少同步的开销的技术。双检锁的主要用途是**在创建单例模式时,确保只有一个实例被创建,尤其是在懒汉式单例模式中,**它被大量使用。原创 2023-11-14 19:32:08 · 660 阅读 · 0 评论 -
【JUC】010-深入单例模式、CAS、ABA问题、可重入锁、自旋锁、死锁排查
一、原创 2020-12-06 12:21:24 · 625 阅读 · 1 评论 -
【JUC】009-ForkJoin分支合并、异步回调、JMM、Volatile关键字、指令重排
一、原创 2020-12-05 15:06:36 · 275 阅读 · 0 评论 -
【JUC】008-Stream流式计算
一、概述1、什么是Stream流式计算大数据:存储 + 计算;存储:集合、数据库等等;计算:都应该交给流来进行;Stream(流)是一个来自数据源(集合、数组等)的元素队列并支持聚合操作;集合将的是数据存储,流讲的是数据计算;<strong元素队列< strong="">元素是特定类型的对象,形成一个队列。 Java中的Stream并不会存储元素,而是按需计算。 数据源流的来源。 可以是集合,数组,I/O channel, 产生器generator .原创 2020-12-04 14:55:20 · 477 阅读 · 0 评论 -
【JUC】007-四大函数式接口
一、原创 2020-12-04 11:29:45 · 351 阅读 · 0 评论 -
【JUC】006-线程池
一、原创 2020-11-26 15:32:21 · 249 阅读 · 0 评论 -
【JUC】005-阻塞队列BlockingQueue、同步队列SynchronousQueue
一、阻塞队列BlockingQueue1、说明(不得不阻塞)写入:如果队列满了,就必须阻塞等待;读取:如果队列是空的,就必须阻塞等待;2、阻塞队列3、结构图4、BlockingQueue的4组API有返回值抛出异常代码演示: //有返回值抛出异常代码演示 @Test public void test01(){ //队列的大小 ArrayBlockingQueue<Object>...原创 2020-11-24 11:11:28 · 1233 阅读 · 0 评论 -
【JUC】004-ReadWriteLock读写锁
目录一、ReadWriteLock读写锁1、概述官方文档介绍:2、问题引出代码实现:运行结果:问题:3、使用读写锁代码实现:运行结果:4、分析一、ReadWriteLock读写锁1、概述官方文档介绍:读可以多个线程读,写只能一个线程写;2、问题引出代码实现:package com.zibo.rw;import java.util.HashMap;import java.util.Map;//读写锁public c.原创 2020-11-24 09:46:06 · 233 阅读 · 1 评论 -
【JUC】003-走进Callable、CountDownLatch、CyclicBarrier、Semaphore
一、Callable(简单)1、官方文档描述①可以有返回值;②可以抛出异常;③方法不同:call()方法(Runnable是run()方法);2、启动线程启动线程的方法只有一个:new Thread().start();但是Thread()的参数不能传入callable:那可怎么办?我们需要借助Runnable的实现类FutureTask传入Callable:package com.zibo.callable;import java.ut.原创 2020-11-24 09:01:18 · 247 阅读 · 0 评论 -
【JUC】003-集合类多线程不安全
目录0、警醒自己一、CopyOnWriteArrayList解决ArrayList不安全1、概述2、总结解决ArrayList多线程不安全的三种方案:CopyOnWriteArrayList比Vector强在哪里:二、CopyOnWriteArraySet解决HashSet不安全1、代码及注释2、总结解决HashSet不安全的两种解决方案:3、HashSet底层是什么底层是HashMap:HashSet的add方法:三、ConcurrentHashMa原创 2020-11-22 10:26:35 · 6211 阅读 · 1 评论 -
【JUC】002-8锁现象
(问题回顾:什么是锁?到底锁的谁?要么锁new出来的对象,要么是Class,下面详解)(8锁就是关于锁的8个问题)一、问题1和21、问题①标准情况下,两个线程是先打印发短信还是打电话?答:先发短信,后打电话;为什么?因为锁,详解见注释;②让发短信方法睡4秒,是先发短信还是先打电话?答:还是先发短信,后打电话;为什么?因为锁,详解见注释;2、代码、注释及运行结果代码和注释:package com.zibo.lock8;import java.util.concurr.原创 2020-11-22 08:36:09 · 216 阅读 · 0 评论 -
【JUC】001-多线程回顾、synchronized与Lock锁
一、什么是JUC二、进程与线程1、概述见之前的博客:https://blog.youkuaiyun.com/qq_29689343/article/details/95861050Java默认有两个线程,一个是Main线程,另一个是GC(垃圾回收)线程;Java开启线程的三种方式:Thread、Runnable、Callable;Java真的能开启线程吗?不能!new Thread().start();public synchronized void start() {.原创 2020-11-20 17:51:35 · 394 阅读 · 1 评论