文章分类 - JUC
JUC学习笔记
摘要:高并发编程学习笔记,学习资源 ——《尚硅谷高级技术之 JUC 高并发编程》。 本篇笔记包含以下内容: BlockingQueue 简介,从 BlockingQueue 的数据结构和运用场景对其进行简单介绍; 核心方法,对 BlockingQueue 的增、删、查操作等主要方法进行说明并演示; 常见类
阅读全文
摘要:JUC 中提供了三种常用的辅助类,通过这些辅助类可以很好的解决线程数量过多时 Lock 锁的频繁操作。这三种辅助类为: CountDownLatch: 减少计数 CyclicBarrier: 循环栅栏 Semaphore: 信号灯 减少计数:CountDownLatch CountDownLatch
阅读全文
摘要:锁的八个问题(八锁问题) class Phone { public static synchronized void sendSMS() throws Exception { // 停留 4 秒 TimeUnit.SECONDS.sleep(4); System.out.println(" send
阅读全文
摘要:线程间通信的模型有两种:共享内存和消息传递,以下方式都是基本这两种模型来实现的。我们来基本一道面试常见的题目来分析。 synchronized 方案 /** * synchronized 关键字实现线程交替加减 */ public class TestSynchronized { /** * 交替加
阅读全文
摘要:completableFuture 简介 CompletableFuture 在 Java 里面被用于异步编程,异步通常意味着非阻塞,可以使得我们的任务单独运行在与主线程分离的其他线程中,并且通过回调可以在主线程中得到异步任务的执行状态,是否完成,和是否异常等信息。CompletableFuture
阅读全文
摘要:Fork / Join 框架简介 Fork / Join 它可以将一个大的任务拆分成多个子任务进行并行处理,最后将子任务结果合并成最后的计算结果,并进行输出。Fork / Join 框架要完成两件事情。 Fork:把一个复杂任务进行分拆,大事化小。 Join :把分拆任务的结果进行合并。 **任务分
阅读全文
摘要:synchronized synchronized 关键字 synchronized 是 Java 中的关键字,是一种同步锁。它修饰的对象有以下几种: 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号 {} 括起来的代码,作用的对象是调用这个代码块的对象; 修饰一个方法,被修饰的方
阅读全文
摘要:Callable 接口 Callable 接口的特点如下(重点) 为了实现 Runnable,需要实现不返回任何内容的 run() 方法,而对于 Callable,需要实现在完成时返回结果的 call() 方法。 call() 方法可以引发异常,而 run() 则不能。 为实现 Callable 而
阅读全文
摘要:线程池简介 线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度。 例子: 10
阅读全文
摘要:什么是JUC JUC 是 java.util .concurrent 工具包的简称,是处理线程的工具包,从 Java1.5 开始出现。 进程和线程的概念 进程与线程 进程 ( process ) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础
阅读全文