自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 十、分支合并框架

十、分支合并框架10.1 原理Fork:把一个复杂任务进行分拆,大事化小Join:把分拆任务的结果进行合并10.2 相关类ForkJoinPool分支合并池 类比 => 线程池ForkJoinTaskForkJoinTask 类比 => FutureTaskRecursiveTask递归任务:继承后可以实现递归(自己调自己)调用的任务10.3 demo/** * 分支合并框架 * ForkJoinPool * ForkJoinTask

2020-10-01 16:43:09 1359

原创 九、线程池

九、线程池9.1 为什么用线程池例子:10年前单核CPU电脑,假的多线程,像马戏团小丑玩多个球,CPU需要来回切换。现在是多核电脑,多个线程各自跑在独立的CPU上,不用切换效率高。线程池的优势:线程池做的工作只要是控制运行的线程数量,处理过程中将任务放入队列,然后在线程创建后启动这些任务,如果线程数量超过了最大数量,超出数量的线程排队等候,等其他线程执行完毕,再从队列中取出任务来执行。它的主要特点为:线程复用;控制最大并发数;管理线程。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销

2020-10-01 16:42:23 84

原创 八、阻塞队列

八、阻塞队列8.1 阻塞队列含义阻塞:必须要阻塞/不得不阻塞 阻塞队列是一个队列,在数据结构中起的作用如下图:线程1往阻塞队列里添加元素,线程2从阻塞队列里移除元素当队列是空的,从队列中获取元素的操作将会被阻塞当队列是满的,从队列中添加元素的操作将会被阻塞试图从空的队列中获取元素的线程将会被阻塞,直到其他线程往空的队列插入新的元素试图向已满的队列中添加新元素的线程将会被阻塞,直到其他线程从队列中移除一个或多个元素或者完全清空,使队列变得空闲起来并后续新增。8.2 用处在多线程领域:所谓

2020-10-01 16:41:40 74

原创 七、ReentrantReadWriteLock读写锁

七、ReentrantReadWriteLock读写锁/** * 多个线程同时读一个资源类没有任何问题, 所以为了满足并发量,读取共享资源应该可以同时进行。. * 但是 * 如果有一个线程想去写共享资源来,就不应该再有其它线程可以对该资源进行读或写 * 小总结: * 读-读能共存 * 读-写不能共存 * 写-写不能共存 */public class ReadWriteLockDemo { public static void main(String[] args) {

2020-10-01 16:41:16 76

原创 六、JUC强大的辅助类

六、JUC强大的辅助类6.1 多线程中创建线程的方式import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * 多线程中创建线程的方式 * 1、 继承Thread类 * 2、 实现Runnable接口 * 3、 实现Callable接口 * 4、 实现Callable接口通过FutureTask包装器来创建Thread线程 */public cl

2020-10-01 16:40:37 87

原创 五、集合类不安全

五、集合类不安全/** * 题目:请举例说明集合类是不安全的 * 1 故障现象 * java.util.ConcurrentModificationException * * 2 导致原因 * 多线程并发,资源未加锁 * 3 解决方案 * 3.1 new Vector<>() * 3.2 Collections.synchronizedList(new ArrayList<>()) * 3.3 new CopyOnWriteArrayList<&

2020-10-01 16:38:08 67

原创 四、多线程八锁原理

四、多线程八锁原理笔记: 都换成静态同步方法后,情况又变化 new this,具体的一部部手机 静态class,唯一的一个模板 所有的非静态同步方法用的都是同一把锁——实例对象本身。 synchronized实现同步的基础: Java中的每一个对象都可以作为锁。 具体表现为以下3种形式。 对于普通同步方法,锁是当前实例对象。 对于静态同步方法,锁是当前类的Class对象。 对于同步方法块,锁是synchronized括号里配置的对象。 当一个线程试图访问同步代

2020-09-25 20:24:56 107

原创 三、Condition和线程顺序访问

三、Condition和线程顺序访问 案例: 多线程之间按顺序调用,实现A->B->C 三个线程启动, 要求如下: AA打印15次,BB打印10次, CC打印15次 接着 A打印15次,BB打印10次, CC打印15次 ......来10轮笔记:1.高内聚低耦合前提下,线程操作资源类2.判断/干活/通知3.多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if)4.注意标志位的修改和定位import java.util.concurrent

2020-09-25 20:23:17 99

原创 二、售票多线程

二、售票多线程笔记: 1.高内聚低耦合的前提下,线程操作资源类 2.判断/干活/通知 3.多线程交互中,必须要防止多线程的虚假唤醒,也即(判断只用while,不能用if) 固定的编程套路+模板是什么?a) 一言不合,先创建一个资源类(domain、entities、pojo)b) 一个线程start之后不是马上就启动,调度跟底层的cpu有关系c) 多线程有六种状态Thread.State看api即可,分别是:NEW、RUNNABLE、BLOCKED、WAITING(死等)、TIME

2020-09-25 20:22:38 78

原创 一、初识JUC

一、初识JUC1.1 三个包java.util.concuurentjava.util.concuurent.atomicjava.util.concuurent.locks1.2 进程/线程进程:是一个程序最小的运行单位线程:是一个进程最小的执行单位(例如idea进程,里面有多个微服务在运行,代码报红、警告等的线程在扫描代码,就是线程)1.3 并发/并行并发:在相对的一段时间内,其实是很短,对计算机有感,对人无感,多个线程抢占资源来执行自己 ,执行A一段时间,马上执行B,然后

2020-09-25 20:21:11 102

原创 SpringCloud Bus 动态刷新遇见的500错误

今天看到周阳老师的视频,是SpringCloud Bus 动态刷新全局广播和定点通知。链接为https://www.bilibili.com/video/BV18E411x7eT?p=81。在命令行发送curl -X POST "http://localhost:3344/actuator/bus-refresh"出现了500错误,idea的异常信息以及命令行窗口的信息如下:java.net.ConnectException: Connection refused: connect at jav

2020-08-25 18:15:10 952 4

原创 Eureka、Zookeeper、Consul的异同点

注册中心Eureka、Zookeeper、Consul的异同点三种方式的异同组件名语言CAP服务监控检查对外暴露接口Springcloud集成EurekaJavaAP可配支持HTTP已集成ConsulGoCP支持HTTP/DNS已集成ZookeeperJavaCP支持客户端已集成CAP理论CAP原则又称CAP定理,指的是在一个分布式系统中,一致性(Consistency)、可用性(Availability)、分区容错性(Pa

2020-08-23 18:48:06 225

原创 回顾SpringBoot自动配置原理

SpringBoot自动配置原理1、自动配置原理:1)、SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration2)、@EnableAutoConfiguration 作用:利用EnableAutoConfigurationImportSelector给容器中导入一些组件?可以查看selectImports()方法的内容;protected AutoConfigurationEntry getAutoConfigurationE

2020-08-15 10:24:20 136

原创 回顾Spring 的事务控制及原理分析

回顾Spring 的事务控制及原理分析一、具体案例<dependency> <groupId>com.mchange</groupId> <artifactId>c3p0</artifactId> <version>0.9.5.2</version></dependency><dependency> <groupId>org.springframew

2020-08-06 18:18:52 174

原创 回顾spring注解

spring注解@ComponentScan:包扫描@Bean:注册/声明一个组件,并将其交给Spring进行管理@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。把一个类作为一个IoC容器

2020-08-04 11:48:22 103

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除