JUC
文章平均质量分 67
Coder_3body
编码创造未来!
展开
-
JUC-JUC三大辅助类
7 JUC 三大辅助类 JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过多时 Lock 锁的频繁操作。这三种辅助类为: CountDownLatch: 减少计数 CyclicBarrier: 循环栅栏 Semaphore: 信号灯 7.1 减少计数 CountDownLatch CountDownLatch 类可以设置一个计数器,然后通过 countDown 方法来进行 减 1 的操作,使用 await 方法等待计数器不大于 0,然后继续执行 await 方法之后的语句。 Co原创 2021-08-23 14:33:27 · 235 阅读 · 0 评论 -
JUC-Callable&Future接口
6 Callable&Future 接口 6.1 Callable 接口 目前我们学习了有两种创建线程的方法: 一种是通过创建 Thread 类, 另一种是通过使用 Runnable 创建线程。 但是,Runnable 缺少的一项功能是,当线程终止时(即 run()完成时),我们无法使线程返回结果。为了支持此功能,Java 中提供了 Callable 接口。 Callable 接口的特点如下(重点) 为了实现 Runnable,需要实现不返回任何内容的 run()方法,而对于 Callable原创 2021-08-23 14:24:12 · 116 阅读 · 0 评论 -
JUC-多线程锁
5 多线程锁 5.1 锁的八个问题演示 import java.util.concurrent.TimeUnit; /** * @Description: 8 锁 * 1 标准访问,先打印短信还是邮件 * ------sendSMS * ------sendEmail * 2 停 4 秒在短信方法内,先打印短信还是邮件 * ------sendSMS * ------sendEmail * 3 新增普通的 hello 方法,是先打短信还是 hello * ------getHello原创 2021-08-23 11:31:37 · 90 阅读 · 0 评论 -
JUC-线程间通信
3 线程间通信 线程间通信的模型有两种:共享内存和消息传递,以下方式都是基于这两种模 型来实现的。 场景—两个线程,一个线程对当前数值加 1,另一个线程对当前数值减 1,要求 用线程间通信 3.1 synchronized 方案 /** * volatile 关键字实现线程交替加减 */ public class TestVolatile { /** * 交替加减 * * @param args */ public static void ma原创 2021-08-23 10:41:41 · 145 阅读 · 0 评论 -
JUC-Lock接口
2 Lock 接口 2.1 Synchronized 2.1.1 Synchronized 关键字回顾 synchronized 是 Java 中的关键字,是一种同步锁。它修饰的对象有以下几种: 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象; 虽然可以使用 synchronized 来定义方法,但 synchronized 并不属于方法定义原创 2021-08-23 10:09:15 · 88 阅读 · 0 评论 -
JUC-01概述
1 什么是 JUC 1.1 JUC 简介 在 Java 中,线程部分是一个重点,本篇文章说的 JUC 也是关于线程的。JUC就是 java.util .concurrent 工具包的简称。这是一个处理线程的工具包,JDK 1.5 开始出现的。 1.2 进程与线程 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。是计算原创 2021-08-20 18:14:57 · 191 阅读 · 0 评论