基础知识集合

https://blog.csdn.net/sheng_q/category_10901984.html?spm=1001.2014.3001.5482

epoll

   事件驱动的I/O模型,同时处理大量的文件描述符

    内核与用户空间共享一个事件表:监控的文件描述符以它们的状态,当状态变化,内核将事件通知给用户空间,用户空间根事件类型进行相应的处理

epoll_create(内核空间)创建文件描述符epfd

   ep_alloc建初始化eventpoll

       eventpoll:被监听socket列表rbr(epitem)/等待队列wq/就绪socket列表rdllist(wait方法从其取)

       epitem:红黑树rbn/rdllink就绪列表/ffd引用描述符/pwqlist等待队列/eq含当前的eventpoll对象指针/event感兴趣的事件和源fd

   anon_inode_getfd把wventpoll映射到文件描述符

epoll_ctl:添加或删除要监听的socket(到epfd)

epoll_wait等待数据

bean实例化与依赖注入

属性注入:javaBean中存在默认构造函数 设置方法

Spring系列-3 Bean实例化与依赖注入_实例化包括属性注入嘛-CSDN博客

循环依赖:提前暴露引用

/**创建好的对象 实例化 属性设置 初始化Cache of singleton objects: bean name to bean instance*/
private final Map<String, Object> singletonObjects = new ConcurrentHashMap<>(256);/**半成品对象Cache of early singleton objects: bean name to bean instance. */
private final Map<String, Object> earlySingletonObjects = new HashMap<>(16);/**构造bean对象的lambda表达式,bean对象创建工厂Cache of singleton factories: bean name to ObjectFactory.(被代理的)对象 */
private final Map<String, ObjectFactory<?>> singletonFactories = new HashMap<>(16);

三级缓存作用

   如果需要代理 初始化阶段的aop提前至属性设置阶段,引入this.earlyProxyReferences标志(map)

   lambda表达式并执行获取代理对象

二级缓存作用

  第一次通过lambda表达式得到代理对象,将代理对象存入二级缓存并删除三级缓存

  第二次直接从二级缓存中查询,而不需要再次执行lambda表达式

inject:

  根据beanName等信息获取待注入的值; 通过反射完成属性注入

国际化

  Locale类国际化类型,包含国家和地区

 准备国际化文件:资源名_语言_国家/地区.properties(只能含ASCII字符)

refresh()的步骤中存在initMessageSource()

springboot 通过spi spring.factories中MessageSourceAutoConfiguration @ConditionalOnMissingBean

JsonDeserializer 自定义 

高并发优化:

高并发扣减库存:

   提交订单-库存,支付时效,超过自动取消订单 还原库存

   token校验/防多次刷单 拉黑/ redis先操作 扣减库存 支付的时候再实际扣减库存

      扣减明细 流水 /  缓存扣减 / 扣减库  +MQ

   定期检查redis/数据库 一致性; 异步更新缓存canal

https://blog.csdn.net/sheng_q/category_10901984.html?spm=1001.2014.3001.5482

线程池:

corePoolSize:核心

maximumPoolSize 核心+非核心

threadFactory工厂:释放守护/优先级 

blockingQueue:

  • LinkedBlockingQueue链式阻塞队列Integer.MAX_VALUE,无限创建队列
  • ArrayBlockingQueue数组阻塞队列,需要指定队列的⼤⼩
  • SynchronousQueue同步队列,内部容量为0,每个put操作必须等待⼀个take操作
  • DelayQueue延迟队列,当其指定的延迟时间到了,才能够从队列中获取到该元素

rejectedExecutionHandler拒绝策略:

  • AbortPolicy丢弃任务并抛RejectedExecutionException异常
  • DiscardPolicy丢弃新来的任务
  • DiscardOldestPolicy丢弃队列头部(最旧)任务 重新尝试执⾏程序(如果失败,重复此过程)
  • CallerRunsPolicy调⽤线程来处理该任务

newCachedThreadPool 很多短时间的任务时,线程复⽤率⽐较⾼,非核心线程 先入队

    0, Integer.MAX_VALUE, 60L, TimeUnit.SECONDS,new SynchronousQueue<Runnable>()

newFixedThreadPool只创建核⼼线程

    nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()

newSingleThreadExecutor

   1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>()

newScheduledThreadPool定⻓线程池,⽀持定时及周期性任务执⾏

    corePoolSize, Integer.MAX_VALUE, DEFAULT_KEEPALIVE_MILLIS, MILLISECONDS, new DelayedWorkQueue()

【多线程】线程池里边都有些什么东西呢_当队列满了,核 线程空闲、扩展线程也空闲,谁从队列 获取?-CSDN博客百度安全验证

ArrayList和LinkedList:

 arraylist动态数组,随机访问get/set,指定位置插入 arraycopy耗时

 linkedList双向链表,for循环获取元素,index<size/2,左边查 否右边查

    数据量大 插入数据 arraylist优势大 特别是后面位置查入

java集合框架05——ArrayList和LinkedList的区别-CSDN博客

Kunbernetes(k8s)的基本概念详解+部署_kuburnetes-CSDN博客

安全验证 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/804.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mac上Maven的安装和环境变量配置保姆级教程(最新版实时更新)

目录 一、Maven的安装 1.进入官网&#xff08;Maven官网&#xff09;下载安装包并解压 2.这里我使用了Homebrew安装Maven 安装Homebrew&#xff1a; 安装Maven&#xff1a; 二、Maven配置环境变量 1.打开环境变量文档&#xff1a; 2.在弹出文档结尾加入配置&#xff1a…

【Node.js】 fs模块全解析

&#x1f525;【Node.js】 fs模块全解析 &#x1f4e2; 引言 在Node.js开发中&#xff0c;fs模块犹如一把万能钥匙&#xff0c;解锁着整个文件系统的操作。从读取文件、写入文件、检查状态到目录管理&#xff0c;无所不能。接下来&#xff0c;我们将逐一揭开fs模块中最常用的那…

【HC32L110】华大低功耗单片机启动文件详解

本文主要记录华大低功耗单片机 HC32L110 的 汇编启动过程&#xff0c;包括startup_hc32l110启动文件详细注释 目录 1.启动文件的作用2.堆栈定义2.1 栈2.2堆 3.向量表4.复位程序5.中断服务程序6.堆栈初始化启动过程详解7.1从0地址开始7.2在Reset_Handler中干了啥&#xff1f; 8.…

PyTorch|保存及加载模型、nn.Sequential、ModuleList和ModuleDict

系列文章目录 PyTorch|Dataset与DataLoader使用、构建自定义数据集 PyTorch|搭建分类网络实例、nn.Module源码学习 pytorch|autograd使用、训练模型 文章目录 系列文章目录一、保存及加载模型&#xff08;一&#xff09;保存及加载模型的权重&#xff08;二&#xff09;保存及…

探究欧拉恒等式的美学与数学威力

正如老子所述&#xff0c;“道生一&#xff0c;一生二&#xff0c;二生三&#xff0c;三生万物”&#xff0c;数学作为人类认知自然法则的语言&#xff0c;其数系的不断发展象征着对世界理解的深化。从自然数经由分数、无理数至复数&#xff0c;复数虽看似反直觉&#xff0c;却…

MATLAB实现蚁群算法优化柔性车间调度(ACO-fjsp)

蚁群算法优化车间调度的步骤可以分为以下几个主要阶段&#xff1a; 1.初始化阶段&#xff1a; 设置算法参数&#xff0c;如信息素浓度、启发式因子等。这些参数将影响蚂蚁在选择路径时的决策过程。 确定车间调度的具体问题规模&#xff0c;包括工件数量、机器数量以及每个工件…

AI:162-如何使用Python进行图像识别与处理深度学习与卷积神经网络的应用

本文收录于专栏&#xff1a;精通AI实战千例专栏合集 从基础到实践&#xff0c;深入学习。无论你是初学者还是经验丰富的老手&#xff0c;对于本专栏案例和项目实践都有参考学习意义。 每一个案例都附带关键代码&#xff0c;详细讲解供大家学习&#xff0c;希望可以帮到大家。正…

OpenHarmony GIF图像渲染库—ohos-gif-drawable

简介 本项目是OpenHarmony系统的一款GIF图像渲染库&#xff0c;基于Canvas进行绘制&#xff0c;主要能力如下: 支持播放GIF图片。支持控制GIF播放/暂停。支持重置GIF播放动画。支持调节GIF播放速率。支持监听GIF所有帧显示完成后的回调。支持设置显示大小。支持7种不同的展示…

面试题:Redis如何防止缓存穿透 + 布隆过滤器原理

题目来源 招银网络-技术-1面 题目描述 缓存穿透是什么&#xff1f;如何防止缓存穿透布隆过滤器的原理是什么&#xff1f; 我的回答 缓存穿透是什么&#xff1f; 攻击者大量请求缓存和数据库中都不存在的key。如何防止缓存穿透 可以使用布隆过滤器布隆过滤器的原理是什么&a…

AI容器化部署开发尝试 (一)(Pycharm连接docker,并部署django测试)

注意&#xff1a;从 Docker 19.03 开始&#xff0c;Docker 引入了对 NVIDIA GPU 的原生支持&#xff0c;因此若AI要调用GPU算力的话docker版本也是有要求的&#xff0c;后面博客测试。 当然本篇博客还没设计到GPU的调用&#xff0c;主要Pycharm加Anaconda的方案用习惯了&#…

缓存的使用及常见问题的解决方案

用户通过浏览器向我们发送请求&#xff0c;这个时候浏览器就会建立一个缓存&#xff0c;主要缓存一些静态资源&#xff08;js、css、图片&#xff09;&#xff0c;这样做可以降低之后访问的网络延迟。然后我们可以在Tomcat里面添加一些应用缓存&#xff0c;将一些从数据库查询到…

Flask:URL与视图的映射

默认端口号80、443 blog_id 限制数据类型的话&#xff08;int&#xff09; 除此之外别的数据类型也可以&#xff0c;或者多个&#xff08;用any&#xff09; /book/list?page6

【笔记】ASP.NET Core Web API之Token验证

在实际开发中经常需要对外提供接口以便客户获取数据&#xff0c;由于数据属于私密信息&#xff0c;并不能随意供其他人访问&#xff0c;所以就需要验证客户身份。那么如何才能验证客户的身份呢&#xff1f;一个简单的小例子&#xff0c;简述ASP.NET Core Web API开发过程中&…

Git学习笔记(三)Git分支

Git分支是Git中非常重要的一个概念&#xff0c;无论是个人开发还是多人协作中&#xff0c;分支都起着至关重要的作用。几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离 开来进行重大的Bug修改、开发新的功能&#xff0c;以免影响…

Linux驱动开发笔记(零)驱动基础知识及准备

文章目录 前言一、Liunx、MCU和FPGA编程的区别二、Linux内核模块1. 什么是内核模块2. 内核模块的代码架构3. 头文件4. 模块参数5. makefile说明 三、 驱动程序设计思路1. 基本步骤2. 设备号3. 数据结构3.1 file_operations3.2 file3.3 inode3.4 哈希表3.5 cdev结构体3.6 kobj_m…

[Linux][进程信号][一][信号基础][如何产生信号]详细解读

目录 0.前言预备1.系统定义的信号列表2.核心转储 -- Core Dump 1.信号基础1.信号概念2.信号处理方式概览3.理解信号如何被保存4.信号发送的本质 2.如何产生信号&#xff1f;1.终端按键产生信号2.系统调用接口1.kill()2.raise()3.abort()4.如何理解&#xff1f; 3.由软件条件产生…

C# 图像旋转一定角度后,对应坐标怎么计算?

原理分析 要计算图像内坐标在旋转一定角度后的新坐标&#xff0c;可以使用二维空间中的点旋转公式。假设图像的中心点&#xff08;即旋转中心&#xff09;为 (Cx, Cy)&#xff0c;通常对于正方形图像而言&#xff0c;中心点坐标为 (Width / 2, Height / 2)。给定原坐标点 (X, …

开发与产品的战争之自动播放视频

开发与产品的战争之自动播放视频 起因 产品提了个需求&#xff0c;对于网站上的宣传视频&#xff0c;进入页面就自动播放。但是基于我对chromium内核的一些浅薄了解&#xff0c;我当时就给拒绝了: “浏览器不允许”。&#xff08;后续我们浏览器默认都是chromium内核的&#…

【深度学习】Vision Transformer

一、Vision Transformer Vision Transformer (ViT)将Transformer应用在了CV领域。在学习它之前&#xff0c;需要了解ResNet、LayerNorm、Multi-Head Self-Attention。 ViT的结构图如下&#xff1a; 如图所示&#xff0c;ViT主要包括Embedding、Encoder、Head三大部分。Class …

OpenHarmony鸿蒙南向开发案例:【智能燃气检测设备】

样例简介 本文档介绍了安全厨房案例中的相关智能燃气检测设备&#xff0c;本安全厨房案例利用轻量级软总线能力&#xff0c;将两块欧智通V200Z-R/BES2600开发板模拟的智能燃气检测设备和燃气告警设备组合成。当燃气数值告警时&#xff0c;无需其它操作&#xff0c;直接通知软总…