随笔分类 -  JUC并发

摘要:forkjoin框架 一:简介 从JDK1.7开始,Java提供Fork/Join框架用于并行执行任务,它的思想就是讲一个大任务分割成若干小任务,最终汇总每个小任务的结果得到这个大任务的结果。 这种思想和MapReduce很像(input --> split --> map --> reduce - 阅读全文
posted @ 2020-08-18 22:19 Cloverlove 阅读(217) 评论(0) 推荐(1)
摘要:join的探究 首先明确join的作用:t.join()方法只会使主线程(或者说是t.join()的线程)进入等待池并等待t线程执行完毕后才被唤醒。但是并不会影响同一时刻其他处在运行状态的线程。 下面来分析一下有无join()的差别: 无join时: // 资源类 package com.join; 阅读全文
posted @ 2020-07-20 23:06 Cloverlove 阅读(167) 评论(0) 推荐(0)
摘要:wait/notify之虚假唤醒(二) 一:sleep和wait的区别 讲这个虚假唤醒之前先来详细说明sleep和wait之间的区别 1:sleep是Thread线程类中的方法,为wait是Object类中的方法 2:sleep方法不会释放锁,但是wait会释放锁 3:sleep可以单独放在很多地方 阅读全文
posted @ 2020-06-22 13:33 Cloverlove 阅读(413) 评论(0) 推荐(1)
摘要:Java中的线程池 一、线程池的底层原理 1.1 先来了解一下原理 先放一张图片上来,看看线程池工作的核心步骤 1:)当任务提交的时候,先判断核心线程池是否已经满了,如果没有满,则直接创建线程执行任务 2:)如果核心线程池满了,则会把多余的任务放在我们定义的阻塞队列中,判断阻塞队列是否已经满了 3: 阅读全文
posted @ 2020-04-14 22:56 Cloverlove 阅读(292) 评论(0) 推荐(0)
摘要:java中的并发工具类 一:等待多线程完成的CountDownLatch CountDownLatch允许一个或多个线程等待其他线程完成操作。 package com.fuzhulei;import java.util.concurrent.*;​/** * 减法计数器,主要是countDown(计 阅读全文
posted @ 2020-04-05 22:36 Cloverlove 阅读(301) 评论(0) 推荐(0)
摘要:虚假唤醒的概念 jdk官方文档解释: 所以说在wait和notify一块使用时,如果使用if作为条件时,会有虚假唤醒的情况发生,所以必须使用while作为循环条件。下面来举例实验: 首先,创建一个资源类:(在多线程中,一般都是资源类和线程操作解耦,不放在用同一个类中,只有在线程操作资源类时,才会创建 阅读全文
posted @ 2020-04-01 23:39 Cloverlove 阅读(1570) 评论(0) 推荐(2)
摘要:一:什么是JUC JUC就是java.util.concurrent下面的类包,专门用于多线程的开发。 二:进程和线程的区别 进程是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和调度的基本单位。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运 阅读全文
posted @ 2020-03-07 13:49 Cloverlove 阅读(2572) 评论(0) 推荐(0)