优先级juc

JUC并发编程学习笔记(十四)异步回调

异步回调 Future设计的初衷:对将来的某个事件的结果进行建模 在Future类的子类中可以找到CompletableFuture,在介绍中可以看到这是为非异步的请求使用一些异步的方法来处理 点进具体实现类中,查看方法,可以看到CompletableFuture中的异步内部类,里面是实现的异步方法 ......
笔记 JUC

C++U5-04-广度优先搜索1

广搜逻辑 广搜代码核心思路 广搜伪代码 思维导图 1、[【广搜】走迷宫] 求最少需要多少步,考虑使用广搜。从起点开始进行搜索,规则只能向上下左右走动,当搜索到终点时就结束。 广搜的核心思路:初始化一个队列和数组将起点入队并标记当队列不为空且没到终点的时候 取出队首(有需要课进项处理) 队首元素为入过 ......
广度 U5 04

关于中断的分类和优先级(优先级由高到低排序)

1.机器校验中断:高速程序发生了设备故障,比如电源故障,主存出错等 2.访管中断:用户程序需要操作系统接入,调用操作系统服务等 3.程序性中断:包括指令和数据的格式错误,程序执行中出现异常等 4.外部中断:来自机器外部,包括定时器中断、外部信号中断、中断键中断等 5.IO中断:由IO控制器产生,用于 ......
优先级

JUC并发编程学习(十三)ForkJoin

ForkJoin 什么是ForkJoin ForkJoin在JDK1.7,并发执行任务!大数据量时提高效率。 大数据:Map Reduce(把大任务拆分成小任务) ForkJoin特点:工作窃取 为什么可以取窃取其他线程的任务呢?因为这里面维护的都是双端队列(即队列的两端都可以取元素) ForkJo ......
ForkJoin JUC

JUC并发编程学习笔记(十二)Stream流式计算

Stream流式计算 什么是Stream流式计算 大数据:存储+计算 集合、MySql这些的本质都是存储东西的; 计算都应该交给流来操作! 一个案例说明:函数式接口、lambda表达式、链式编程、Stream流式计算 package org.example.stream; import java.u ......
笔记 Stream JUC

JUC并发编程学习(十一)四大函数式接口(必备)

四大函数式接口(必备) 程序员:泛型、反射、注解、枚举 新时代程序员:lambda表达式、链式编程、函数式接口、Stream流式计算 函数式接口:只有一个方法的接口 @FunctionalInterface public interface Runnable { public abstract vo ......
函数 接口 JUC

JUC并发编程学习笔记(十)线程池(重点)

线程池(重点) 线程池:三大方法、七大参数、四种拒绝策略 池化技术 程序的运行,本质:占用系统的资源!优化资源的使用!-> 池化技术(线程池、连接池、对象池......);创建和销毁十分消耗资源 池化技术:事先准备好一些资源,有人要用就拿,拿完用完还给我。 线程池的好处: 1、降低资源消耗 2、提高 ......
线程 重点 笔记 JUC

JUC并发编程学习笔记(九)阻塞队列

阻塞队列 阻塞 队列 队列的特性:FIFO(fist inpupt fist output)先进先出 不得不阻塞的情况 什么情况下会使用阻塞队列:多线程并发处理、线程池 学会使用队列 添加、移除 四组API 方式 抛出异常 不抛出异常,有返回值 阻塞等待 超时等待 添加 add offer put ......
队列 笔记 JUC

JUC并发编程学习笔记(八)读写锁

读写锁 ReadWriteLock ReadWriteLock只存在一个实现类那就是ReentrantReadWriteLock,他可以对锁实现更加细粒化的控制 读的时候可以有多个阅读器线程同时参与,写的时候只希望写入线程是独占的 Demo: package org.example.rw; impo ......
笔记 JUC

JUC并发编程学习笔记(七)常用的辅助类

常用的辅助类 CountDownLatch 这是一个JUC计数器辅助类,计数器有加有减,这是减。 使用方法 package org.example.demo; import java.util.concurrent.CountDownLatch; //线程计数器 public class Count ......
常用 笔记 JUC

JUC并发编程学习笔记(六)Callable(简单)

Callable(简单) callable接口和runnable接口类似,都是为了执行另外一条线程而设计的,区别是Runnable不会返回结果也不会抛出异常。 1、可以有返回值 2、可以抛出异常 3、方法不同;run()/call(); Runnable 实现Runnable接口,重写run方法,无 ......
Callable 笔记 JUC

Java 利用JUC CountDownLatch 线程池Executors 实现多线程操作

Java 利用JUC CountDownLatch 线程池Executors 实现多线程操作 业务场景:某个业务操作非常耗时,但又必须等这个操作结束后才能进行后续操作 import org.springframework.util.CollectionUtils; import java.util. ......
线程 CountDownLatch Executors Java JUC

JUC并发编程学习(五)集合类不安全

集合类不安全 List不安全 单线程情况下集合类和很多其他的类都是安全的,因为同一时间只有一个线程在对他们进行修改,但是如果是多线程情况下,那么集合类就不一定是安全的,可能会出现一条线程正在修改的同时另一条线程启动来对这个集合进行修改,这种情况下就会导致发生并发修改异常(在jdk11的环境下多次测试 ......
JUC

JUC并发编程学习笔记(四)8锁现象

8锁现象 八锁->就是关于锁的八个问题 锁是什么,如何判断锁的是谁 对象、class模板 深刻理解锁 锁的东西无外乎就两样:1、同步方法的调用者,2、Class模板。 同一个锁中,只有当前线程资源释放后才会被下一个线程所接手。 同步方法的调用者是两个不同的实例时,互不相关。 静态同步方法(stati ......
现象 笔记 JUC

JUC并发编程学习笔记(三)生产者和消费者问题

生产者和消费者问题 synchronized版-> wait/notify juc版->Lock 面试:单例模式、排序算法、生产者和消费者、死锁 生产者和消费者问题 Synchronized版 package org.example.pc; public class A { public stati ......
生产者 消费者 笔记 问题 JUC

JUC并发编程学习笔记(二)Lock锁(重点)

Lock锁(重点) 传统的synchronized 传统的解决多线程并发导致的一些问题我们会使用synchronized关键字来解决,synchronized的本质就是队列、锁。 Lock的实现类有:可重复锁(最常用)、读锁、写锁 在创建可重复锁时,可传入boolean类型值来决定该锁是公平锁(先来 ......
重点 笔记 Lock JUC

JUC并发编程学习笔记(一)认知进程和线程

进程和线程 进程 一个程序,如QQ.exe,是程序的集合 一个进程往往可以包含多个线程,至少包含一个 java默认有两个线程,GC垃圾回收线程和Main线程 线程:一个进程中的各个功能 java无法真正的开启线程,因为java是运行在虚拟机上的,所以只能通过C++,通过native本地方法调用C++ ......
线程 进程 笔记 JUC

属性选择器 伪类选择器 伪元素选择器 选择器的优先级 CSS属性相关 字体属性 CSS盒子模型 float浮动

今日内容详细 属性选择器 通过标签的属性来查找标签,标签都有属性 <div class="c1" id="d1"></div> id值和class值是每个标签都自带的属性,还有另外一种:自定义属性 <div class="c1" id="d1" username='kevin' password=' ......
属性 优先级 盒子 CSS 模型

算法【ZAB 优先级的民主投票】

一、简介 ZAB(ZooKeeper Atomic Broadcast)算法是ZooKeeper为实现分布式协调而设计的,它是对Raft选主算法的一种改进,在拥有投票选举的维度下增加节点ID以及数据ID(数据的最新值)为参考。 二、说明 2.1、ZAB算法有3种角色: Leader:主节点 Obse ......
优先级 算法 ZAB

《Java 并发编程的艺术》实验02-4 JUC Executor的使用

Executor 框架的使用 ThreadPoolExecutor 简介 Executor 机制实现了工作单元和执行机制的分离 ThreadPoolExecutor 实现了 Executor 接口,是 Java 线程池的根本实现类之一。它提供了更丰富的配置参数,例如核心线程数、最大线程数、线程空闲时 ......
Executor 艺术 Java JUC 02

《Java 并发编程的艺术》实验02-1 JUC 并发容器和框架的使用

JUC 并发容器和框架的使用 ConcurrentHashmap 简介 线程安全的哈希表,Hashmap 在 多线程环境下的替代 实验 实验目的:了解并发容器 ConcurrentHashmap 的使用方法 实验内容: 基础:直接使用 Thread 实现 多个线程同时往ConcurrentHashM ......
容器 框架 艺术 Java JUC

《Java 并发编程的艺术》实验02-2 JUC 原子操作类的使用

JUC 原子操作类的使用 实验目的 掌握Java原子类的使用方法,了解原子类在多线程环境下的特点和使用场景。 实验过程 导入Java原子类的库 创建AtomicInteger对象 使用原子方法对count进行操作 实验参考代码 public class AtomicExample { public ......
原子 艺术 Java JUC 02

《Java 并发编程的艺术》实验02-3 JUC 并发工具类的使用

JUC 并发工具类的使用 CountDownLatch 简介 CountDownLatch 是Java并发包中的一个基本类,它可以用来在多个线程间同步操作。 其主要功能是允许一个或多个线程等待,直到其他线程完成它们的操作后再继续执行。 CountDownLatch 是通过一个计数器实现的,计数器的初 ......
工具 艺术 Java JUC 02

JavaScript运算符及优先级

一、算数运算符 算术运算符(+,-, *,/,%【重要】,++【重要】,--) 其中 + 的左边和右边有 " ", 表示拼接 i++,表示先赋值后+1 ++i ,表示先+1后赋值 同理减法也是如此 算数运算中,+ 可以进行隐式迭代,将字符串数字转化为Number类型 alert(typeof(+'5 ......
运算符 优先级 JavaScript

C++U5-深度优先搜索-03(记忆化搜索、剪枝和优化)

💡 根据 遗忘曲线:如果没有记录和回顾,6天后便会忘记75%的内容 笔记正是帮助你记录和回顾的工具,不必拘泥于形式,其核心是:记录、翻看、思考 思维导图 记忆化搜索图示: 剪枝和优化解释 例题讲解: 【天下第一】 #include <bits/stdc++.h> using namespace s ......
深度 记忆 U5 03

JUC前置知识

JUC前置知识 JUC概述 在开发语言中,线程部分是重点,JUC是关于线程的。JUC是java.util.concurrent工具包的简称。这是一个处理线程的工具包,JDK1.5开始出现的。 线程和进程 线程和进程的概念 进程(process): 是计算机的程序关于某数据集合上的一次允许活动,是操作 ......
知识 JUC

深度优先搜索的最短路径问题

这个简单的图,要求使用深度优先算法求出(1,1)到终点的最短路径。 1、分析 就目前看来,(1,1)->(1,2)->(2,2)->(2,3)->(2,4)->(3,4)->(4,4)->(4,3)和(1,1)->(2,1)->(3,1)->(4,1)->(5,1)->(5,2)->(5,3)->( ......
深度 问题

深度优先算法

一、例子 提问:输入一个数字n,输出1~n的全排列。 首先,将全排列比作小盒子和扑克牌 将数字比作扑克牌,我们有1号,2号,3号扑克牌和1号2号3号3个盒子。每个盒子只能放置一个扑克牌,实现全排列。那我们如何往小盒子中放入扑克牌。每个小盒子都可能放1号、2号或者3号扑克牌,这都需要一一尝试,这里一个 ......
算法 深度

栈实现算术优先级运算c++

#include <stdlib.h> #include <stdio.h> #include <iostream> using namespace std; #define STACK_INIT_SIZE 100 //栈初始开辟空间大小 #define STACK_INCREMENT 10 //栈 ......
优先级 算术

进程调度算法--先来先服务算法-短进程优先算法

常用的调度算法 先来先服务调度算法(FCFS):先到达先执行,非抢占式的,同时就绪时仲裁规则是随机的。 短进程优先调度算法(SPF):从就绪队列中找运行时间最短的进程,非抢占式的,仲裁规则是按照时间先后顺序或随机方式。 先来先服务调度算法(FCFS) #include<stdio.h>#includ ......
算法 进程