合集-JUC基础

摘要:JUC前置知识 JUC概述 在开发语言中,线程部分是重点,JUC是关于线程的。JUC是java.util.concurrent工具包的简称。这是一个处理线程的工具包,JDK1.5开始出现的。 线程和进程 线程和进程的概念 进程(process): 是计算机的程序关于某数据集合上的一次允许活动,是操作 阅读全文
posted @ 2023-10-23 23:27 长名06 阅读(171) 评论(0) 推荐(1) 编辑
摘要:Synchronized Synchronized关键字回顾 synchronized是java中的关键字,是一种同步锁。它修饰的目标有以下几种: 1.修饰一个代码块,被修饰的代码块称为同步代码块,其作用的范围是大括号{},括起来的代码,作用的对象是调用这个代码块的对象,synchronized不能 阅读全文
posted @ 2023-10-25 23:59 长名06 阅读(233) 评论(0) 推荐(0) 编辑
摘要:线程间通信 多线程编程步骤(中) 第一,创建资源类,创建属性和操作方法;第二,在资源操作方法,1)判断 2)工作 3)通知;第三,创建多线程调用资源类的方法。 案例 要求,有两个线程,实现对一个初始值为0的变量,一个线程对值+1,一个线程对值-1。 代码实现 /** * @author 长名06 * 阅读全文
posted @ 2023-10-28 22:34 长名06 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Lock实现线程间定制化通信 案例 要求 三个线程,AA BB CC AA线程打印5次,BB线程打印10次,CC线程打印15次 代码实现 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lo 阅读全文
posted @ 2023-10-30 23:01 长名06 阅读(78) 评论(0) 推荐(0) 编辑
摘要:ArrayList在多线程情况下,不安全 具体代码 package com.shaonian.juc.list_thread_secure; import java.util.ArrayList; import java.util.List; import java.util.UUID; /** * 阅读全文
posted @ 2023-11-02 21:56 长名06 阅读(76) 评论(0) 推荐(0) 编辑
摘要:常见锁介绍 synchronized锁的八中情况 package com.shaonian.juc.more_thread_lock; import java.util.concurrent.TimeUnit; class Phone { public static synchronized voi 阅读全文
posted @ 2023-11-12 23:21 长名06 阅读(90) 评论(0) 推荐(0) 编辑
摘要:Callable接口和Future接口 创建线程的方式 1.继承Thread类2.实现Runnable接口3.Callable接口4.线程池方式 Callable接口 在继承Thread类和实现Runnable接口的方式创建线程时,线程执行的run方法中,返回值是void,即无法返回线程的执行结果, 阅读全文
posted @ 2023-11-20 23:53 长名06 阅读(116) 评论(0) 推荐(0) 编辑
摘要:JUC的强大辅助类 juc中提供了常用的辅助类,通过这些辅助类,可以很好的解决线程数量过多时,Lock锁的频繁操作这三种辅助类为: 1.CountDownLatch,减少计数。 2.CyclicBarrier,循环栅栏。 3.Semaphore,信号灯。 减少计数器(CountDownLatch) 阅读全文
posted @ 2023-11-22 23:07 长名06 阅读(134) 评论(0) 推荐(0) 编辑
摘要:ReentrantReadWriteLock读写锁 乐观锁和悲观锁 乐观锁 乐观锁,就是给需要共享的数据,添加一个版本号version,例如1,每次有线程更新共享数据后,version+1,每次线程进行数据更新时,要比较当前线程持有的数据的版本号,相等则修改,不相等则不修改,支持并发访问。 悲观锁 阅读全文
posted @ 2023-11-24 22:34 长名06 阅读(82) 评论(0) 推荐(0) 编辑
摘要:BlockingQueue阻塞队列 BlockingQueue简介 juc包下,BlockingQueue很好的解决了多线程中,高效安全的"传输数据"问题。 阻塞队列,是一个队列,可以是数据从队列的一端输入,从另一端输出。 当队列空时,从队列获取元素线程被阻塞,直到其他线程向空的队列插入新元素。 当 阅读全文
posted @ 2023-11-26 17:38 长名06 阅读(85) 评论(0) 推荐(0) 编辑
摘要:线程池 线程池简介 线程池(thread pool):一种线程的使用模式。线程过多会带来调度的开销,进而影响局部和整体性能。而线程池维护多个线程,等待着监督管理者分派并发执行的任务。这避免了在处理短时间任务时创建和销毁线程的代价。线程池不仅能够保证内核的充分使用,还能防止过分调度线程。 10多年前的 阅读全文
posted @ 2023-11-28 22:44 长名06 阅读(68) 评论(0) 推荐(0) 编辑
摘要:Fork/Join框架简介 Fork/Join框架简介 Fork/Join它可以将一个大的任务拆分成多个子任务并行处理,最后将子任务结果合成并最后的计算结果,并进行输出。FOrk/Join框架要完成两件事情。Fork:把一个复杂的任务进行分析,大任务拆分成小任务;Join:把拆分的结果进行合并。 1 阅读全文
posted @ 2023-12-01 12:29 长名06 阅读(162) 评论(0) 推荐(0) 编辑
摘要:CompletableFuture异步回调 CompletableFuture简介 CompletableFuture被用于异步编程,异步通常意味着非阻塞,可以使得任务单独允许在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常信息。 Completab 阅读全文
posted @ 2023-12-01 18:11 长名06 阅读(293) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示