自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

纯洁的小魔鬼

只有魔法才能打败魔法

  • 博客(151)
  • 资源 (11)
  • 收藏
  • 关注

原创 二叉树基础

在计算机科学中,树是一种用于表示层次结构的抽象数据类型和非线性数据结构。树由一组节点(Nodes)和节点之间的关系(通常通过边表示)组成。树的定义具有以下特性和组成部分:2.特性树是一种递归的数据结构:树可以定义为包含子树的树。树是连通无环图:树是无环图(Acyclic Graph),且在树中任意两个节点之间只有唯一一条路径。3.树的组成1. 节点(Node):树的基本单位,包含数据或值。2. 根节点(Root Node):树的顶端节点,是树的唯一入口点。根节点没有父节点。3. 子节点(Child Node

2024-07-03 18:32:21 1049

原创 算法-哈夫曼编码

哈夫曼树是一种基于字符频率的最优二叉树,用于数据压缩。通过统计字符频率,构建优先级队列,并采用贪心策略合并最小频率节点,最终生成前缀编码(高频字符编码短,低频字符编码长)。其优点包括高效压缩、简单实现、无损解码等,广泛应用于文件压缩、多媒体编码等领域。Java代码示例展示了静态和动态哈夫曼编码的实现方法,其中动态版本可适应流式数据频率变化。哈夫曼树还可用于网络路由优化、基因数据分析等其他场景,通过最小化编码长度显著提升存储和传输效率。

2024-06-25 18:31:27 5962

原创 Netty网络应用框架

Netty框架解析与应用实践 Netty是一款基于Java的异步事件驱动网络应用框架,专为构建高性能、高可扩展性的网络服务器和客户端而设计。本文从框架特性、核心原理到实际应用,全面解析Netty技术体系。 核心优势 高性能架构:采用异步非阻塞I/O模型,支持高效线程管理和多路复用 协议支持:内置HTTP、WebSocket、TCP/UDP等协议支持,可扩展自定义协议 开发效率:提供丰富的API和编解码器,简化网络编程复杂度 稳定性:经过生产验证的错误处理机制和流量控制能力 核心组件 EventLoop:事件

2024-06-07 16:55:44 3075

原创 道格拉斯轨迹抽稀算法

道格拉斯-普克算法是一种折线简化算法,通过递归方式减少数据点数量,同时保持原始形状。该算法设定阈值距离,计算中间点到首尾连线的垂直距离,保留距离超过阈值的点并进行分段处理。文章提供了Java实现代码,包括距离计算和递归简化过程。通过测试一段轨迹数据,对比原始轨迹(红线)和简化后轨迹(绿线),验证了算法在减少数据点的同时有效保持了轨迹形状特征。该算法在地理信息系统和计算机图形学中有广泛应用。

2024-05-13 00:10:49 1126

原创 多线程任务监视器

本文介绍了Java线程池任务超时控制的几种实现方案。首先分析了线程池中任务阻塞导致线程无法释放的问题,提出通过设置最大执行时长来强制终止超时任务。然后详细比较了三种实现方式:1)在子线程中再创建线程并利用join()方法监控;2)使用ScheduledExecutorService定时检查任务状态;3)结合CompletableFuture和ScheduledExecutorService实现更精确的监控。重点阐述了第三种方案的工作原理:通过CompletableFuture作为监控器,当任务正常完成或异常

2024-04-03 16:49:40 1111

原创 mysql binlog常用操作

一.查看 binlog 基本信息binlog文件的位置配置可在 /etc/my.cnf 配置和查看0. 登录 mysqlmysql -h localhost -u root -p1.查看binlog文件列表进入mysql命令行:show binary logs;2.查看当前正在写入的binlog文件show master status;3. 查看binlog事件信息show binlog events in 'bin-log.000004';4.查看 binlog 文件单个

2022-04-27 11:26:13 7182 1

原创 JVM垃圾收集器

本文系统介绍了Java垃圾回收机制的核心概念和实现。主要内容包括: GC基础:区分需要回收的内存区域(堆和方法区),介绍引用计数和可达性分析两种判定对象存活的方法; 回收算法:标记-清除、标记-整理、复制算法及分代收集策略; 垃圾收集器:详细对比Serial、Parallel、CMS、G1等收集器特点; 实践指导:提供GC选择建议,分析不同场景下的适用方案。文章还介绍了ZGC和Shenandoah等新特性,全面梳理了GC技术演进路线,为Java开发者优化内存管理提供了系统参考。

2022-04-22 15:48:54 2798

原创 JDK内置命令行工具

java命令行序号接口javaJava 应用的启动程序javacJDK 内置的编译工具javap反编译 class 文件的工具javadoc根据 Java 代码和标准注释,自动生成相关的 API 说明文档javahJNI 开发时, 根据 java 代码生成需要的 .h文件extcheck检查某个 jar 文件和运行时扩展 jar 有没有版本冲突,很少使用jdbJava Debugger ; 可以调试本地和远端程序,属于 JPDA 中的一

2022-03-16 14:49:54 11817

原创 JVM 启动参数

JVM 启动参数一.几类不同开头的参数1. 以 - 开头为标准参数,所有的 JVM 都要实现这些参数,并且向后兼容,如 -server。2. -D 设置系统属性,如 -Dfile.encoding=UTF-8。3. 以 -X 开头为非标准参数,基本都是传给 JVM 的,默认 JVM 实现这些参数的功能,但是并不保证所有 JVM 实现都满足,且不保证向后兼容。 可以使用 java -X 命令来查看当前 JVM 支持的非标准参数,如 -Xmx8g。4. 以 –XX:开头为非稳定参数, 专门用于控制

2022-03-11 10:16:47 7526 5

原创 Java类加载器

本文详细介绍了Java类的生命周期和加载机制。主要内容包括:1) 类的7个生命周期阶段(加载、验证、准备、解析、初始化、使用、卸载),重点解释了各阶段的工作内容,如准备阶段为类变量分配内存,初始化阶段执行<clinit>()方法等;2) 类初始化的触发条件,包括遇到new指令、调用静态方法等场景;3) 三类类加载器(启动类加载器、扩展类加载器、应用类加载器)及其层级关系。文章通过示例代码阐述了静态变量初始化、类构造器执行顺序等关键概念,帮助理解JVM类加载机制。

2022-01-19 10:59:32 2555 1

原创 JVM字节码

Java字节码与平台无关性 Java字节码是平台无关性的基石,由单字节指令组成,支持约200种操作码。字节码通过虚拟机实现跨平台执行,不仅限于Java语言,任何能编译成Class文件的语言都能在JVM上运行。字节码指令分为加载存储、运算、类型转换等9大类,提供了比Java语言更强大的语义描述能力。 字节码生成与分析 通过javac命令可将Java源文件编译为字节码,使用工具如javap可反编译查看汇编指令、局部变量表等信息。示例中的HelloWord类编译后,其字节码包含了方法调用、字符串加载等操作指令。

2022-01-17 15:57:21 1939

原创 Java双检锁模式

双检锁单例模式通过两次判空检查实现线程安全,但存在指令重排序风险。对象创建过程包含内存分配、初始化和地址返回三步,其中后两步可能被重排序,导致返回未初始化对象。volatile关键字通过插入内存屏障防止指令重排序:写操作前后和读操作后插入屏障,确保多线程环境下操作顺序的一致性,从而避免返回未完成初始化的实例。这种机制保证了双检锁单例模式在多线程环境下的正确性。

2021-11-09 15:03:43 2838 3

原创 人工智能-机器学习-KMeans聚类

一.概述k均值聚类算法(k-means clustering algorithm)是一种迭代求解的聚类分析算法,属于无监督学习的一种,其步骤是,预先将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以分为3中:1. 没有(或最小数目)对象被重新分配给不同的聚类2

2021-10-15 23:46:36 3574 2

原创 人工智能-深度学习-yolov3口罩佩戴识别

一.基础环境windows 10cuda 10.0python3.7.4tensorflow-gpu 1.14.0keras2.24numpy==1.16.5二.下载keras-yolo3代码从github上下载:https://github.com/qqwweee/keras-yolo3代码解构如下:三.下载权重并测试本项目所用权重文件:权重文件官方提供的地址:yolov3.weightsyolov3-tiny.weights共有两个权重文件 yolov3.weig

2021-08-27 00:44:19 13610 383

原创 人工智能-运维-win10安装cuda

注: 本文以python 3.7.4 安装 TensorFlow 1.14.0 GPU 举例一.安装 TensorFlow 1.14.0 GPU 版本pip install tensorflow-gpu==1.14.0注:以pip安装的 tensorflow-gpu 版本所用cuda为10.0版本也可以在 github 中下载别人整理好的版本:https://github.com/fo40225/tensorflow-windows-wheel选择相应的gpu版本即可注: 以此方法下载

2021-08-18 22:02:24 510 1

原创 人工智能-机器学习-支持向量机

一.概述支持向量机即SVM(Support Vector Machine),主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。是一类按监督学习方式对数据进行二元分类的广义线性分类器。如图所示, 红色和蓝色的点是可以被一条直线分开的, 在模式识别领域称为线性可分问题, 然而将两类数据点分开的直线显然不止一条, b图和c图分别给出了A, B两种不同的分类方案, 其中黑色实线为分类线, 术语称为"决策面"。每个决策面对应了一个线性分类器。虽然在目前的数据上看, 这两个分类器的分类结果是一

2021-07-14 01:55:37 2277 1

原创 人工智能-机器学习-决策树与随机森林

一.数据集的纯度决策树的关键在于当前状态下选择哪个属性作为分支条件。最佳分类属性这种“最佳性”可以用非纯度(impurity)进行衡量。如果一个数据集合中只有一种分类结果,则该集合最纯,即一致性好;如果有许多分类,则不纯,即一致性不好。有很多指标定义不纯度,根据不同判定不纯度的目标函数:1.ID3 算法ID3算法的核心是“信息熵”:1. 熵作为衡量样本纯度的标准,熵越大,越不纯。2. 希望在分类以后能够降低熵的大小,变纯一些。3. 分类后熵变小可以用信息增益(Information Ga

2021-07-01 01:50:35 804 5

原创 人工智能-机器学习-特征工程

我们用泰坦尼克号事件生还者信息举例, 采用KNN算法预测某个人的生还率, 采用KNN临近算法一.利用pandas观察数据情况我们先看下数据:各列对应字端的含义为:passengerId: 表示乘船编号surverved: 表示是否存活, 0为死亡, 1为生存(此列为标签)pclass: 客舱等级name: 名字sex: 性别age: 年龄sibsp: 兄弟姐妹数和配偶数parch: 船上父母数和子女数ticket: 船票编号fare: 船票价格cabin:客舱号embarke

2021-06-19 10:57:44 843 1

原创 人工智能-深度学习-手写数字识别

1.准备数据手写数字识别的特征集是一组数值为0-9,大小为 28 * 28 矩阵的图片, 标签为与之对应的数字:数据位置在: 手写数字识别数据集2.将数据格式化为 npz 文件"""将图片和标签整理为 npz 文件"""import numpy as npimport osfrom PIL import Imageimport json# 读取图片# 存到 npz 文件中的为 28 *28 的矩阵列表train_file_path = "nums/train_x/"

2021-06-16 00:27:13 7679 14

原创 人工智能-深度学习-Pytorch与神经网络

一.Pytorch基础操作1.numpy建立矩阵import numpy as np# numpy中建立4 * 4的 全为1的矩阵a_numpy = np.ones([4, 4])b_numpy = np.ones([4, 4])# 矩阵的点乘c_numpy = a_numpy @ b_numpy# 使用 numpy 建立矩阵的类型是 numpy.ndarrayprint("c_numpy的数据类型: %s, 值: %s" % (c_numpy.dtype, c_numpy))c

2021-06-03 02:03:36 1031 1

原创 人工智能-算法模型-线性回归

一.概述       回归分析是研究统计规律的方法之一。在回归分析中我们把所关心的一些指标称为因变量,通常用Y来表示;影响因变量的变量称为自变量,用X1、X2、…XP来表示。回归分析研究的主要问题是:确定Y与X1、X2、…XP间的定量关系表达式,这种表达式称为回归方程;对求得的回归方程的可信度进行检验,判断自变量对Y有无影响;利用所求得的回归方程进行预测和控制。     &nbs

2021-05-14 01:17:16 5506 3

原创 人工智能-编程-Fizz Buzz

题目描述:写个程序来玩Fizz Buzz. 这是一个游戏。玩家从1数到100,如果数字被3整除,那么喊’fizz’,如果被5整除就喊’buzz’,如果两个都满足就喊’fizzbuzz’,不然就直接说数字。这个游戏玩起来就像是:1 2 fizz 4 buzz fizz 7 8 fizz buzz 11 fizz 13 14 fizzbuzz 16 …一.传统方法编程def fizz_buzz(num): if num % 3 == 0 and num % 5 == 0: r

2021-05-07 00:53:48 10363 2

原创 人工智能-数据分析-鸢尾花

此篇文章需要一些线性代数、矩阵分块和Numpy的基础,在文中对这些基础不再赘述一.鸢尾花数据在机器学习中,大部分数据均是矩阵类型的:我们先看一下鸢尾花数据:鸢尾花有四个属性:花瓣长度、宽度、花萼长度、花萼宽度,每一组属性成为一个样本,属性称为样本的特征,四个属性确定了鸢尾花的类别,也称为标签,由此形成了数据集{(x, d)}。此数据可以用于分析鸢尾花的类别。对于非数字的数据,我们要将他们映射为数字。如果类别数量较多,比如0,1,2等整形数字可以映射为 0->[1.0,0.0,0.0],1-.

2021-05-06 23:31:26 9171 2

原创 人工智能-数学基础-线性代数与仿射变换

一.鸢尾花数据在机器学习中,大部分数据均是矩阵类型的:我们先看一下鸢尾花数据:鸢尾花有四个属性:花瓣长度、宽度、花萼长度、花萼宽度,每一组属性成为一个样本,属性称为样本的特征,四个属性确定了鸢尾花的类别,也称为标签,由此形成了数据集{(x, d)}。此数据可以用于分析鸢尾花的类别。对于非数字的数据,我们要将他们映射为数字。如果类别数量较多,比如0,1,2等整形数字可以映射为 0->[1.0,0.0,0.0],1->[0.0,1.0,0.0],称为OneHot(独热编码)。import s

2021-04-23 13:12:47 1155 1

原创 人工智能-数学基础-傅里叶变换与卷积

X(ω)=F(x(t))=∫−∞+∞x(t)e−iωtdt X(\omega) = F(x(t)) = \int_{-\infty}^{+\infty}x(t)e^{-i \omega t}dt X(ω)=F(x(t))=∫−∞+∞​x(t)e−iωtdtx(t)=F−1(X(ω))=12π∫−∞+∞X(ω)eiωtdω x(t)=F^{-1}(X(\omega)) = \frac{1}{2\pi} \int_{-\infty}^{+\infty}X(\omega)e^{i \omega t...

2021-04-21 23:15:26 7299 32

原创 人工智能-数学基础-函数与优化

一.最优化问题1.一元方程最优化问题求解函数极小值 f(x)=x2+x−1 f(x) = x^2 + x -1 f(x)=x2+x−11.1 传统求解先求导,使导数为0: f′(x)=2x+1=0 f\prime(x) = 2x+ 1=0 f′(x)=2x+1=0x=−0.5x = -0.5 x=−0.5但是大多数情况下,函数很难直接计算导数为0,并且计算机无法跟人脑似的解方程,所以大多数情况下需要依靠数值求解。1.2 随机过程求解,类似“模拟退火”依靠不断地尝试求解:"""一元二次方程

2021-04-20 02:02:11 1554 1

原创 Java线程池和阻塞队列

线程池任务增加过程:注:此图为ThreadPoolExecutor的机制,但不代表全部,比如dubbo提供的线程池 EagerThreadPoolExecutor,就是先起线程到最大值,再进队列 b.拥有六个参数:比a多了参数: c.拥有六个参数:比a多了参数: d.拥有七个参数:但是仔细看的话,ThreadPoolExecutor虽然提供了四个5到7个参数,但是在方法体中,均是 7 个参数。此队列常用方法:任务队列是基于阻塞队列实现的

2020-08-17 01:16:24 4204 4

原创 java中的Lock锁

本文介绍了Java中的Lock接口及其实现类ReentrantLock和ReadWriteLock。与synchronized关键字相比,Lock提供了更灵活的锁机制,包括可中断锁、公平锁、读写锁等功能。Lock接口包含lock()、tryLock()、lockInterruptibly()等方法,需要手动释放锁。Condition接口配合Lock可实现选择性通知机制。ReadWriteLock通过分离读锁(共享)和写锁(排他)提高并发性能:多个读操作可同时进行,但写操作互斥且优先于读操作。文中通过代码示例

2020-07-15 02:42:43 19254 6

原创 JMM内存模型

在现代计算机系统中,CUP,内存和IO的处理速度是 CUP > 内存 > IO,由于计算机的存储设备与CPU的运算速度有几个数量级的差距,所以现代计算机系统都会引入一层读写速度尽可能接近处理器运算速度的高速缓存来作为内存与处理器之间的缓冲:将运算需要使用到的数据复制到缓存中,让运算能快速进行,当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了。 基于高速缓存的存储交互很好地解决了处理器与内存的速度矛盾,但是它引入...

2020-07-08 02:26:22 608 1

原创 mysql 中Innodb的索引

MySQL索引优化指南 摘要:索引是MySQL提高查询性能的关键数据结构,本文系统介绍了索引原理与使用技巧。主要内容包括:1)索引类型:聚簇索引(主键索引)和非聚簇索引(辅助索引)的区别及回表机制;2)索引分类:普通索引、唯一索引、主键索引、联合索引的特点与创建方法;3)联合索引的最左匹配原则和索引下推优化;4)覆盖索引的优势及实现方式;5)索引排序规则与索引失效场景。文章通过大量测试案例,详细演示了如何合理建立索引、避免索引失效,并提供了EXPLAIN分析索引使用情况的方法,最后总结了12条索引建立规则和

2020-06-08 03:17:18 4710 1

原创 mysql 事务隔离机制

摘要:本文详细介绍了MySQL事务的四大特性(ACID)和四种隔离级别。重点分析了脏读、不可重复读、幻读三种并发问题及其对应的隔离级别解决方案,并通过实验验证了不同隔离级别的效果。文章深入探讨了MVCC机制的实现原理,包括快照读和当前读的区别,指出MVCC在可重复读隔离级别下对幻读问题的部分解决。最后,提出了彻底解决幻读的两种方法:使用串行化隔离级别或Next-key锁机制。测试表明,在写操作中使用Next-key锁能有效防止幻读,但实际项目中幻读问题的影响相对有限。

2020-05-20 02:12:26 1925

原创 synchronized原理

摘要:Java中的synchronized关键字是实现线程同步的重要机制,具有以下特性:1)作为隐式可重入锁,支持锁升级(偏向锁→轻量级锁→重量级锁);2)保证原子性、可见性和有序性;3)使用方法包括方法加锁和同步代码块。底层原理通过monitor对象实现,JDK1.6后优化了锁机制,引入偏向锁、轻量级锁和自适应自旋锁等策略提升性能。此外,JVM会进行锁粗化和锁消除优化。该机制适用于解决多线程并发问题,但需根据具体场景选择合适的同步策略。

2020-05-11 00:21:39 5399

原创 Java虚拟机类加载机制

Java虚拟机类加载机制详解 摘要:Java虚拟机通过类加载机制将Class文件加载到内存,经历加载、验证、准备、解析和初始化五个阶段。这种动态加载特性为Java程序提供了灵活性,支持动态扩展和接口实现延迟绑定。初始化阶段存在五种必须触发的场景,而被动引用不会引发初始化。类加载器采用双亲委派模型(Bootstrap、Extension、Application三类加载器),确保类安全性和唯一性,但存在三次被破坏的情况:JDK1.2向前兼容、JNDI服务逆向调用和OSGi热部署需求。类加载器与类共同确定唯一性,

2019-07-29 23:04:31 650

原创 JVM 垃圾收集与内存分配

本文系统介绍了Java垃圾回收机制(GC)的核心内容。GC主要关注堆和方法区的内存回收,通过可达性分析算法判断对象存活,并结合引用计数算法解决循环引用问题。Java提供四种引用类型(强、软、弱、虚)来灵活管理对象生命周期。垃圾收集算法包括标记-清除、复制、标记-整理等,针对不同代(新生代/老年代)采用分代收集策略。HotSpot虚拟机通过OopMap、安全点等机制优化GC效率。主流收集器包括Serial、ParNew、CMS和G1等,各有适用场景。内存分配遵循特定规则,如大对象直接进老年代、动态年龄判断等,

2019-05-29 00:29:12 577 1

原创 Centos 用户管理

本文介绍了Linux系统中用户管理相关操作指南,包括:1)创建用户、设置密码、加入sudo组及验证权限;2)配置SSH密钥登录并禁用密码登录;3)查找/删除用户及文件;4)文件权限管理(chown/chmod/setfacl);5)通过visudo配置用户以root权限执行特定命令。重点讲解了用户权限控制的多种方法,包括用户组管理、文件系统权限和sudoers配置,同时提供了密钥认证、SSH安全配置等实用技巧。

2025-08-13 17:47:02 498

原创 Nginx 服务器常用操作

本文介绍了Nginx的常用配置,包括主配置文件nginx.conf和子配置文件default.conf的设置。主配置文件包含全局参数如worker进程数、CPU绑定、日志格式、Gzip压缩等优化选项。子配置文件示例展示了HTTPS服务器配置,包括SSL证书设置、加密套件选择、负载均衡upstream定义,以及不同location的路由规则(静态文件服务、API代理、跨域处理等)。重点配置项包括:worker进程优化、安全头设置、SSL/TLS安全配置、请求大小限制、负载均衡实现等,适用于构建高性能、安全的W

2025-08-13 14:47:48 1043

原创 Springboot 配置 doris 连接

摘要:本文介绍了在SpringBoot项目中配置Doris数据库连接的两种方式。Doris兼容MySQL协议,可通过Druid连接池实现连接。单数据源配置可直接在yml中设置连接参数;多数据源场景需分别配置MySQL和Doris数据源,并创建对应的Java配置类,通过@MapperScan指定不同包路径实现数据源隔离。文中详细列出了Druid连接池的各项参数配置及多数据源的具体实现方法。

2025-08-01 21:31:52 589

原创 进程和线程

本文系统性地介绍了进程和线程的核心概念及区别。进程是操作系统资源分配和调度的基本单位,具有独立内存空间和资源集合,包含程序代码、数据段、堆栈区及进程控制块(PCB)。进程上下文切换开销较大,涉及内存管理、权限重建等操作。进程间通信(IPC)包括管道、消息队列、共享内存等多种方式。 线程作为CPU调度和执行的最小单位,共享进程资源但拥有独立栈和寄存器上下文,分为用户级和内核级线程。线程上下文切换仅需保存寄存器状态,开销较小。文章详细对比了进程与线程的特征、组成、上下文管理及通信机制,为理解操作系统并发模型提供

2025-07-17 15:47:44 927

原创 消息队列和可靠性

消息队列技术解析:原理、问题与解决方案 摘要:消息队列(MQ)是分布式系统中实现异步通信和解耦的核心组件,常见实现包括Kafka、RabbitMQ等。本文系统分析了消息队列的关键技术:1)消息防丢失机制,包括生产者确认、副本同步和手动提交偏移量;2)幂等性保障,通过唯一ID、数据库约束和Redis锁实现;3)Kafka消息有序性原理及其分区策略;4)主流消息传输协议对比,包括WebSocket、MQTT等适用场景。文章还详细探讨了消息重复消费、顺序保证等实际问题的解决方案,为分布式系统设计提供了重要参考。

2025-07-16 13:30:23 928

原创 select、poll 和 epoll

摘要:Linux系统中的select、poll和epoll都是I/O多路复用机制,用于高效监控多个文件描述符状态。select通过位图结构实现,但存在1024个文件描述符的限制;poll改用数组结构解决了数量限制,但仍是线性扫描;epoll采用事件驱动模型,通过红黑树和就绪队列实现O(1)时间复杂度,特别适合高并发场景。三者主要区别在于:select/poll需要每次重新传入所有描述符,而epoll只需注册一次;select/poll仅支持水平触发,epoll还支持边沿触发;epoll在性能上优势明显但仅适

2025-07-15 20:11:50 1013

geomesa-hbase-2.11-2.3.0 环境安装包

GeoMesa 是一个开源的 分布式时空地理空间数据库,它的核心是让你在 大数据平台(Hadoop/HBase/Accumulo/Cassandra) 上存储和查询海量的地理空间数据(矢量和点云数据)。

2025-08-13

yolov3口罩佩戴识别代码与训练数据

YOLO (You Only Look Once) 是一个流行的目标检测算法,其第三个版本称为 YOLOv3。 本资源包含口罩识别代码和模型(已训练完, 并经过测试) 和 口罩训练文件 11000 张, 包括标注文件和训练测试验证集分隔代码。 该模型以 yolov3-tiny.weights 为基础权重文件进行二次训练, 生产模型文件 tiny_yolo_weights.h5, 也可使用大权重文件 yolov3.weights 为基础权重。本模型的训练和使用均可采用 cuda, 训练速度较快。 代码包含数据分割, 模型训练, 模型使用(可对图片,视频,摄像头等进行监测) 具体的使用教程请看: https://blog.csdn.net/xyy1028/article/details/119932088

2024-03-08

核密度分析算法java实现

本算法以四次核函数为基础,四次核函数的特点是具有平滑的曲线形状,具有较宽的窗口,对数据点的贡献在距离较远时会迅速减小。由于其平滑性和较大的支持范围,四次核函数在核密度估计中被广泛使用。 在核密度估计中,通过将核函数应用于每个数据点,并对所有数据点的贡献进行求和,可以计算出在每个位置上的密度估计值。四次核函数的结果可视为在核密度估计中每个位置的密度贡献权重。较大的结果表示该位置的密度较高,而较小或接近零的结果表示该位置的密度较低。 本算法中主要利用核密度公式计算空间范围内的核密度值,根据核密度值生成 png 或 jpg 格式的热力图,或者将整个空间切割成网格,用网格中心点参与核密度计算生成 geojson 文件,以供进一步空间探索分析。

2024-02-29

Centos离线安装zip和unzip

一些情况下, 服务器不联网, 则安装一些常用的命令比较麻烦, 本资源提供 Centos 离线安装 zip 和 unzip 命令和安装方法, 文件包含 unzip-6.0-21.el7.x86_64.rpm 和 zip-3.0-11.el7.x86_64.rpm以及安装命令。

2024-02-28

Centos离线安装mongodb

一些情况下, 服务器不联网, 则安装一些常用的软件则比较麻烦, 本资源提供 Linux 离线安装 MongoDB 软件和安装教程 pdf, 文件包含 mongodb-linux-x86_64-3.6.3.tgz 和 mongodb离线安装.pdf, 教程中详细描述了安装步骤和遇到的常见问题。

2024-02-28

Centos7重新安装 python2.7 和 yum

有时候我们不小心卸载了centos 自带的python2.7, 导致了yum不能使用, 这时我们需要冲洗你安装 python2.7 和 yum, 此资源包含 python2.7和yum相关的软件和安装教程。

2024-02-23

redis-4.0.11离线安装软件与教程

一些情况下, 服务器不联网, 则安装一些常用的软件则比较麻烦, 本资源提供 Linux 离线安装redis 软件和安装教程 pdf, 文件包含redis-4.0.11.tar.gz 和 离线安装redis安装.pdf, 教程中详细描述了安装步骤和遇到的常见问题。

2024-02-23

Centos离线安装zip和unzip软件

一些情况下, 服务器不联网, 则安装一些常用的软件则比较麻烦, 本资源提供 Linux离线安装zip和unzip软件和安装命令, 文件包含 unzip-6.0-21.el7.x86_64.rpm 和 zip-3.0-11.el7.x86_64.rpm

2024-02-22

centos7升级openssh软件和教程

OpenSSH是一个用于安全远程登录的开源工具,它通过加密的方式提供了对网络上的远程计算机的安全访问。在过去,OpenSSH也曾经发现过一些安全漏洞,这些漏洞可能会影响到系统的安全性,因此及时修补是非常重要的。 由于Centos7自带的openssh版本过低且存在漏洞,所以为了安全考虑我们需要升级openssh到最高版本。 一些以前的OpenSSH漏洞包括: OpenSSH 4.3p2版本的漏洞:该漏洞允许远程攻击者绕过身份验证,获得无限制的访问权限。 OpenSSH 5.2及之前版本的漏洞:该漏洞允许远程攻击者绕过身份验证,执行任意命令。 OpenSSH 6.3及之前版本的漏洞:该漏洞允许远程攻击者绕过身份验证,获取敏感信息。 资源包含 需要用到的升级软件和升级教程

2024-02-22

sqllite数据库和数据文件

SQLite是一种轻量级的、嵌入式的关系型数据库管理系统(RDBMS),它以库的形式被嵌入到应用程序中,而不是作为独立的服务器运行。SQLite的设计目标是尽可能简单、轻量、快速,并且易于集成到各种编程语言中。 以下是SQLite的一些特点和优势: 无需配置:SQLite不需要独立的服务器进程或系统管理员,它可以直接访问普通的磁盘文件来存储数据库。 零配置:SQLite数据库无需任何配置,只需包含SQLite的库文件即可开始使用。 轻量级:SQLite的库文件非常小,可以轻松嵌入到各种应用程序中,甚至在嵌入式系统中也可以使用。 无类型:SQLite的字段可以存储任何类型的数据,而不需要提前定义字段的数据类型。 事务支持:SQLite支持完整的事务,包括ACID属性(原子性、一致性、隔离性、持久性)。 跨平台:SQLite可以在各种操作系统上运行,包括Windows、Linux、macOS等。 高性能:SQLite具有高性能的特点,能够处理大量的数据,执行速度较快。 开源:SQLite是开源软件,使用它不需要支付任何费用,并且可以查看和修改其源代码。

2024-02-22

mybatis 父子级树形结构查询

针对父子级数据目录查询, 以前都是逐级的去根据父级id查询子集目录, 查出后最后再在代码中拼成树形结构, 相当复杂,我们可以利用 mybatis 提供的 collection 标签自动组织树形结构

2022-09-13

springboot使用jasypt示例代码

Spring boot配置文件中的用户名密码等配置文件一般情况下是明文保存的,这样就隐藏了密码泄露的安全隐患,所以一般都要求将密码加密后保存配置的,我们可以使用 jasypt 对 Springboot 应用中的密码进行加密。本文件为JCE包和springboot代码示例。

2022-09-08

gcc 4.8.5离线安装包

gcc 4.8.5离线安装包

2021-07-21

手写数字识别数据.zip

MNIST手写数字识别数据集, 内含7万张图片和标签, 以及npz文件

2021-06-15

keras-yolo3权重文件

keras-yolov3权重文件

2021-08-19

labelImg图片标注工具

labelImg图片标注工具

2021-08-19

Centos重新安装python和yum的文件

Centos重新安装python和yum的rpm文件

2021-07-07

pydot相关软件和安装步骤

pydot相关软件和安装步骤

2021-06-26

机器学习数据-泰坦尼克号

泰坦尼克号csv数据,机器学习中做特征工程的样例数据

2021-06-19

random_point.zip

可以根据polygon或者LineString类型的geojson模拟随机点, 可指定点个数, 规避区域等参数, 可生成点的geojson字符串和文件或者csv文件

2021-05-21

springboot上传excel导入到数据库完整demo(后端代码)

springboot后端代码,完整实现excel导入或更新mysql数据库,使用编译器引入项目即可执行测试,压缩包包括springboot项目,测试用excel和mysql建表语句

2018-06-08

RoutePlan.zip

python环形回路算法,可用于行驶路线规划,如:北京-天津-上海-北京

2019-08-27

JSON文件操作代码

JSON文件的操作,包括读取修改写入提炼,压缩包内包含代码和所需.json文件等测试工具

2018-07-18

空空如也

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

TA关注的人

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