自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 拓扑排序 + 深度优先搜索解决问题

当节点 u 的所有相邻节点的状态都是「已访问」时,将节点 u 的状态更新为「已访问」,并将节点 u 入栈。当所有节点都访问结束之后,如果没有找到有向图中的环,则存在拓扑排序,所有节点从栈顶到栈底的顺序即为拓扑排序。是:对于一个特定节点,如果该节点的所有相邻节点都已经搜索完成,则该节点也会变成已经搜索完成的节点,在拓扑排序中,该节点位于其所有相邻节点的前面。深度优先搜索的过程中需要维护每个节点的状态,每个节点的状态可能有三种情况:「未访问」、「访问中」和「已访问」。初始时,所有节点的状态都是「未访问」。

2025-06-02 10:41:04 273

原创 分布式锁的干货分享及应用

如果标志位为 1 ,表示锁已经被其他线程占用,当前线程只有一直循环等待,直到它能够成功地将标志位设置 1。Spinlock通过原子的CAS指令:当一个线程需要访问共享资源时,它会检查一个标志位,如果标志位为 0 ,则线程可以获取锁,并将标志位设置为 1。如下图所示,任何提供三个特性的服务都可以提供分布式锁的能力,资源可以是文件或者键值对等,通过创建文件,创建键值对等原子操作,通过创建成功的结果来表明所有权的归属,同时通过。在Spinklock中,线程会循环检查互斥量的状态,直到它处于可用状态。

2025-05-21 11:39:03 194

原创 uthash是一个非常轻量级的库

这种配置方式虽然简单,但是使用操作却需要用到大量的宏函数。在使用宏函数时不像使用普通函数一样自由和遍历,且通常难以debug。并且还需要根据指定的方式定义哈希节点,如要求必须存在。是一个非常轻量级的库。该库的使用非常简单,无需格外的静态库或动态库,仅需导入目标的头文件即可。时第二多个参数必须与哈希节点中作为键的变量的字面量一致,等等。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!那么是否还建议学习使用。

2025-05-20 20:12:14 216

原创 个人经验谈算法在实际业务场景中的应用

一开始写这个判断的时候并不能和曾经刷过的题关联起来,但在一些有变化的问题上,就发现需要用到刷算法时的解决思路了,比如怎样实现会更优雅,各种复杂度是比较小等。而机器学习算法的话,很多时候面临到的问题是,你学到的一些非常fancy ,看起来很厉害的模型,却在实际运用的时候发现都不work,效果也不好,甚至是会面临一些很厉害的模型因为性能太差根本没法上线。这些情况都是比较常见的情况,所以在实际的工作中用到一些模型的时候,一定要理解它背后的原理和当时提出这个模型的过程。你的线上的算力和性能是什么样的?

2025-05-19 10:43:01 138

原创 浅谈无服务器WebSocket的优势

完全托管的无服务器 WebSocket 解决方案为事件驱动的消息传递提供了基础结构;它使底层基础设施成为一种商品。客户端使用提供程序服务发送/接收低延迟消息,并专注于构建业务逻辑来处理实时更新。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!

2025-05-18 09:36:34 421

原创 从代码角度求最大三角形面积

关于求解三角形面积的公式可以参考百度百科「三角形面积公式」。我们可以枚举所有的三角形,然后计算三角形的面积并找出最大的三角形面积。给你一个由 X-Y 平面上的点组成的数组 points ,其中 points [i] = [xi, yi]。从其中取任意三个不同的点组成三角形,返回能组成的最大三角形的面积。与真实值误差在 10*-5 内的答案将会视为正确答案。好了,今天的文章分享就到这里了,希望对大家的学习有帮助哦!

2025-05-17 11:14:07 207

原创 浅谈解释型语言的运用

不得不说,程序不需要编译,程序在运行时才翻译成机器语言,每执行一次,都要翻译一次,因此效率比较低。在运行程序时才翻译,专门有一个解释器去进行翻译,每个语句都是执行的时候才翻译,依赖解释器,如 Java、C#、PHP、JavaScript、Python 等。因为每次执行程序都需要重新转换源代码,所以解释型语言的执行效率天生就低于编译型语言,甚至存在数量级的差距。对于解释型语言,每次执行程序都需要一边转换一边执行,用到哪些源代码就将哪些源代码转换成激起码,用不到的不进行任何处理。

2025-04-11 12:45:00 386

原创 JavaScript高阶函数的定义

JavaScript 语言中的函数显然满足高阶函数的条件,在实际开发中,无论是将函数当做参数传递,还是让函数的执行结果返回另一个函数,这两种情形都有很多应用场景,本文简单总结了一些高阶函数的应用场景。

2025-04-09 19:30:00 258

原创 进程的静止状态、活动状态与终止状态

由于被挂起的进程不能被调度运行,因此通常将挂起状态称为静止状态。

2025-04-08 12:30:00 262

原创 浅谈进程与程序的区别

4. 进程与程序之间无一一对应关系,既然进程是程序的一次执行,那么一个程序的多次执行可以产生多个进程,而不同的进程也可以包含同一段程序;1. 程序是指令的有序集合,是一个静态的概念,其本身没有任何运行的含义。进程是程序在 CPU 上的一次执行过程,是一个动态的概念;2. 程序作为软件资料可以长期保存,而进程则有生命期,它由创建而诞生,因调度而执行,因得不到资源而暂停执行,因撤销而消亡;3. 进程是一个独立运行的基本单位,也是系统进行资源分配和调度的基本单位,而程序作为静态文本,既不运行也不分配和调度;

2025-04-07 16:00:00 439

原创 两种线程的终止方式

实际上,在大多数操作系统中,线程被终止后并不立即释放它所占用的系统资源,只有进程中的其他线程执行了“分离函数”后,被终止的线程才会与资源分离。因此,在操作系统中引入线程后,进程已不再是一个执行实体,而只是资源分配的实体,这时进程扮演的角色是为它包含的多个线程提供资源,一个进程可以包含若涵线程且至少包含一个线程,而一个线程只能属于一个特定的进程。也有一些系统线程,一旦被建立起来,就一直运行下去,而不再被终止,这类线程一般用于在后台为其他线程提供服务。

2025-04-07 07:45:00 284

原创 Promise实例方法

finally 与 done 的最大区别在于:finally 接受一个普通的回调函数作为参数,该函数不管怎样都必须执行。

2025-04-03 13:00:00 197

原创 释义ES6中的箭头函数

在 JavaScript 中,代码的执行上下文由变量对象、作用域链和 this 值组成,但箭头函数与外层执行上下文共享 this 值,如果需要创建具有独立上下文的函数,就不要使用箭头函数。箭头函数没有完整的执行上下文,因此其 this 和外层的 this 相同,可以理解为它的执行上下文只有变量对象和作用域链,没有 this 值。

2025-04-02 10:02:08 342

原创 ES5内容之String接口

注意:slice、substr、substring 都接受一个或两个参数,第一个参数指定字符串的开始位置,第二个参数表示子字符串到哪里结束,slice 和 substring 的第二个参数指定的是子字符串的最后一个字符后面的位置,substr 第二个参数指定的是返回的字符个数,如果没有传递第二个参数,则将字符串的末尾作为结束位置。

2025-04-01 21:45:13 288

原创 JavaScript的发布-订阅模式

实际上,JavaScript的发布-订阅模式又叫观察者模式。3、发布消息的时候,发布者会遍历这个缓存列表,依次触发里面存放的订阅者回调函数,可以往回调函数里添加一些参数,订阅者可以接收这些参数。发布-订阅模式的应用非常广泛,既可以用在异步编程中,又可以完成松耦合的代码编写。2、给发布者添加一个缓存列表,用于存放回调函数,以便通知订阅者;1、要指定好谁充当发布者;

2025-04-01 12:55:55 295

原创 HTTP新的二进制格式与多路复用

一个 request 对应一个 id,这样一个连接上可以有多个 request,每个连接的 request 可以随机的混杂在一起,接收方可以根据 request 的 id 将 request 再归属到各自不同的服务端请求里面。TCP 连接会随着时间进行自我「调谐」,起初会限制连接的最大速度,如果数据成功传输,会随着时间的推移提高传输的速度。HTTP1.x 的解析是基于文本。基于文本协议的格式解析存在天然缺陷,文本的表现形式有多样性,要做到健壮性考虑的场景必然很多,二进制则不同,只认 0 和 1 的组合。

2025-03-31 12:34:44 348

原创 影响HTTP网络请求的因素

建立连接:HTTP 是基于 TCP 协议的,浏览器最快也要在第三次握手时才能捎带 HTTP 请求报文,达到真正的建立连接,但是这些连接无法复用,会导致每次请求都经过三次握手和慢启动,三次握手在高延迟的场景下影响较为明显,慢启动则对文件类的请求影响较大。浏览器阻塞:浏览器会因为一些原因阻塞请求,浏览器对于同一个域名,同时只能有4个连接(这个根据浏览器内核不同可能会有所差异),超过浏览器最大连接数限制,后续请求就会被阻塞。2.持久连接,重用 TCP 连接,以消除连接及关闭时延。

2025-03-30 20:37:05 673

原创 TCP流量控制与拥塞控制

如果网络出现拥塞,分组将会丢失,此时发送方会继续重传,从而导致网络拥塞程度更高。因此当出现拥塞时,应当控制发送方的速率。这一点和流量控制很类似,但是出发点不同。流量控制是为了让接收方能来得及接收,而拥塞控制是为了降低整个网络的拥塞程度。流量控制是为了控制发送方发送速率,保证接收方来得及接收。接收方发送的确认报文中的窗口字段可以用来控制发送方窗口大小,从而影响发送方的发送速率。将窗口字段设置为0,则发送方不能发送数据。

2025-03-30 11:16:55 496

原创 递归算法在斐波那契数列的应用

如大家所了解的,在编程过程中,递归算法对解决特定类型的问题时非常便利,往往能使算法的描述简洁而且易于理解。用文字来说,就是斐波那契数列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21 ......

2025-03-29 18:44:17 293

原创 V8自动垃圾回收机制总结

但是对 V8 的垃圾回收特点和 JavaScript 在单线程上的执行情况,垃圾回收时影响性能的原因之一,想要高性能能的执行效率,需要注意让垃圾回收尽量少的执行,尤其是全堆垃圾回收。从 V8 的自动垃圾回收机制的设计角度可以看到,V8 对内存使用进行限制的缘由。新生代设计为一个较小的内存空间是合理的,而老生代空间过大对于垃圾回收并无特别意义。以 Web 服务器中的会话实现为例,一般通过内存来存储,但在访问量大的时候会导致老生代中存活对象骤增,不仅造成清理/整理过程费时,还会造成内存紧张,甚至溢出。

2025-03-28 12:27:28 271

原创 对象晋升的两个必要条件

在单纯的 Scavenge 过程中,From 空间中的存活对象会被复制到 To 空间中去,然后对 From 空间和 To 空间进行角色对换(又称翻转)。在一定条件下,需要将存活周期长的对象移动到老生代中,也就是完成对象的晋升。如果已经经历过了,会将该对象从 From 空间复制到老生代空间中,如果没有,则复制到 To 空间中。设置 25%这个限制值的原因是当这次 Scavenge 回收完成后,这个 To 空间将变成 From 空间,接下来的内存分配将在这个空间中进行,如果占比过高,会影响后续的内存分配。

2025-03-27 21:06:42 310

原创 axios封装过程拆解

axios.jsbase.jsindex.js。

2025-03-26 13:55:37 222

原创 ElementUI el-menu导航开启vue-router模式

有没有小伙伴遇到这么一种情况:ElementUI el-menu导航中,开启vue-router 的模式后,点击触发事件而不进行路由跳转?这样去操作,就能完美解决问题!所以当你遇到同样的问题,不妨试试本文章中的方法哦!若对代码部分有疑问,也欢迎留言一起探讨!

2025-03-25 20:42:49 508

原创 toggleRowSelection操作数据和指针的关系

实际上,toggleRowSelection操作的数据和指针有关,我们只能操作当前表格的数据,虽然 toggleRowSelection 传入的 选中的行数据 和表格中的行数据的某一项的数据一模一样,但是它们的指针不同,指向不同内存地址。上次文章,我们详细介绍了ElementUI 表格使用 toggleRowSelection 添加默认值不生效的原因与解决方法。toggleRowSelection操作数据和指针的关系。

2025-03-24 11:22:53 209

原创 SVN忽略不必提交的文件夹和文件方法

在弹出的 config 文件中找 global-ignores,复制一行下来,去掉 global-ignores 前的 #最近有小伙伴在问:SVN在提交时如何忽略不必提交的文件夹和文件,如node_modules,.git,.idea等?如果是"文件夹" global-ignores = *node_modules。如果是文件 global-ignores = .project .git。好了,这样就可以了,希望方法对你有用哦!

2025-03-23 21:20:12 1073

原创 在Vue中如何分别缓存页面状态

不要在router/index.js 里将多个路由指向同一个组件,而应该新建多个页面组件,每个组件中只是作为 HelloWorld 组件的容器,然后多个路由页面分别指向不同的页面组件,然后在 keep-alive 的 include 属性中加入所有路由组件的 name,就可以实现分别缓存同一组件不同实例的状态了。需要注意的是,不要把路由直接指向同一个组件,而是用两个路由页面组件作为容器,包裹相同的组件。

2025-03-21 12:57:46 221

原创 JS函数柯里化

首先,大家需明白一个概念:什么是柯里化?高阶函数的一个特殊用法,柯里化(Currying)是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数且返回结果的新函数的技术。

2025-03-20 09:26:19 208

原创 Normalize.css的定义及作用

实际上,Normalize.css 是一个可以定制的 CSS 文件,它让不同的浏览器在渲染网页元素的时候形式更统一。好了,今天的干货分享就到这里了,希望对大家的学习有帮助哦~1、保留有用的默认值,不同于许多 CSS 的重置;3、纠正错误和常见的浏览器的不一致性;Normalize.css能干什么?2、标准化的样式,适用范围广的元素;4、一些细微的改进,提高了易用性;5、使用详细的注释来解释代码。什么是Normalize?

2025-03-18 08:43:06 333

原创 动态绑定获取ref元素

动态绑定中,分为两种方式,一种是通过将。方法访问当前组件实例上的。

2024-10-15 20:04:04 373

原创 观察者模式(Observer)

观察者模式是一种对象行为模式。它定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新,简单来说,观察者模式就是,一个对象(被观察者)的状态发生改变时,会通知所有依赖它的对象(观察者),观察者模式有一个别名叫发布-订阅模式。观察者模式(Observer),它是软件设计模式的一种。在此种模式中,一个目标对象管理着所有相依(依赖)于它的观察者对象,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实现事件处理系统。

2024-10-12 11:26:47 404

原创 Lingo求解器百度云下载 ling 8.0/lingo 18安装包资源分享

以“ SETS:” 开始, “ENDSETS”结束,定义必要的集合变量(SET)及其元素(MEMBER,含义类似于数组的下标)和属性(ATTRIBUTE,含义类似于数组);3.变量名称必须以字母(A~Z)开头,由字母、数字(0~9)和下划线组成,长度不超过32个字符,函数一律需要以“@”开头,不区分大小写;1.LINGO根据“MAX=”或“MIN=”寻找目标函数,而除注释和TITLE语句外的其他语句都是约束条件,因此语句的顺序并不重要;好了,今天的文章分享就到这里了,希望对大家有帮助哦~

2024-07-29 20:31:17 834

原创 Pycharm软件Win 64位安装包+详细安装步骤 百度云

1、代码编辑器: PyCharm内置了高度智能化的代码编辑器,支持语法高亮、自动补全、代码重构、代码提示、跳转等功能,使得编写Python代码更加高效和舒适。4、集成开发环境: PyCharm提供了一整套的工具和环境,包括项目管理、代码分析、测试工具等,使得开发者能够轻松地进行整个开发周期内的工作。5、自动化工具: PyCharm集成了许多自动化工具,如自动化测试、代码检查、文档生成等,有助于提高代码质量和开发效率。3、系统管理: 在运维领域,PyCharm可以用于编写自动化脚本、管理配置文件等任务。

2024-07-23 21:03:49 612

原创 最新最详细的MDI Jade安装包下载安装教程(保姆级)

在XRD分析中,定性分析也就是进行物相检索,主要是通过实验测量或理论计算,建立一个“已知物相的卡片库”,将所测样品的图谱与 PDF卡片库中的“标准卡片”进行一一对照,然后根据其三强峰峰位、峰强及样品中的元素进行判定是否存在这种物相。MDI Jade用于处理X射线衍射的数据,把经过Jade软件透彻分析的结果形象生动的展现给用户,除了基本的显示图谱、打印图谱、数据平滑等功能。2、图谱拟合——可以安装不同的锋行函数对单峰或全谱拟合,拟合过程是结构精修、晶粒大小、微观应变、残余应力计算等功能的必要步骤;

2024-07-16 11:33:12 24820 4

原创 视频剪辑软件如何选?FCPX和PR更适合新手呢

随着抖音、快手等短视频平台的迅速兴起,短视频数量急剧增加。想要发布一款简单、高质量的短视频,运用剪辑软件至关重要。目前比较流行的有Adobe家的Premiere,以及Final Cut Pro X,经常有用户在二者间,不知如何选择,下面就一起来探讨吧!

2024-07-15 19:05:25 792

原创 Moldflow软件下载:附网盘地址+详细教程步骤

如大家所了解的,Autodesk Moldflow仿真软件具有注塑成型仿真工具,能够帮助您验证和优化塑料零件、注塑模具和注塑成型流程。很多初次接触的小伙伴,或者是电脑小白,除了在选择版本问题上存在困恼,如何把软件安装成功,也是一大头疼的事情。以上为最新版的安装步骤,实际上,大家在选择版本时,应当根据自己的实际需要、电脑配置来做考虑,没有必要一直追求最新。1、打开安装包,启动安装包程序setup.exe,进入安装准备。2、选择语言,勾选同意,点击下一步。3、选择安装位置并点击下一步,如下图所示。

2024-07-13 11:06:57 3820

原创 安装西门子博途Tia Portal软件时容易出现的错误合辑,整理了供参考

处理方法:控制面板--程序和功能--添加或关闭WINDOWS功能--打开的对话框里面勾选NET3.5,然后等待下载安装完成就行了。在安装西门子博途Tia Portal软件时,经常会遇到各种各样的问题,困扰着大家。那么每个问题的解决方案是什么呢?处理方法:最好的方式就是重装系统win10专业版来的最快,对电脑不太懂的人,短时间内很难有解决。处理方法:升级您的电脑IE到11以上版本就可以解决,原因是操作系统的IE浏览器版本太低。解决方法:否,出现此问题,需要删除注册表文件,删除以后千万不要重启,继续安装。

2024-07-11 13:33:12 6025

原创 EViews 64位安装包下载:附地址+详细安装教程

如大家所了解的,EViews是Econometrics Views的缩写,通常称为计量经济学软件包。此外,EViews还可以用于一般的统计分析,但它对于计量经济分析特别有用,比如横截面和面板数据分析及时间序列的估计和预测。它支持Excel,SPSS,SAS,Stata,RATS和TSP等文件格式,并接通ODBC数据库。注:以上安装步骤有简化,详细安装步骤请参考安装包内的图文教程,每一步都参考来,规范操作的话,安装还是不难的。2.解压安装包,进入 Setup 文件夹,以管理员身份运行安装程序;

2024-07-10 15:33:01 15274 5

原创 解决Origin 2022版本安装出现“试用期已结束”的方法,亲测有效

如大家所了解的,Origin是由OriginLab公司开发的一个科学绘图、数据分析软件,包括统计,信号处理,曲线拟合以及峰值分析,支持在Microsoft Windows下运行。目前origin常用的版本为2022,而大家在安装时,常常遇到一个难题,即:“试用期已结束”,让很多小伙伴头疼不已,手足无措。1、把电脑的系统时间改到这个origin版本时间前(比如安装的origin 2022版本,电脑时间改为21年12月26即可 );2、系统时间改完后,重新参考教程安装就可以了;那么,这个问题是无解的吗?

2024-07-08 09:37:29 4615

原创 专业统计分享软件|Stata 17安装包百度云盘下载(附教程)

Stata支持多种数据格式的导入和导出,如Excel、CSV、SPSS等。3.这一步很重要:安装位置可以默认(默认是C盘),也可以自行更改,但更改后的路径一定不要出现中文名;Stata提供了大量的内建命令,涵盖了描述统计、线性回归、时间序列、面板数据分析等各种统计方法;6.切换到你的安装路径,把刚刚复制的文件粘贴到这里,会发现有一个重名的文件,要替换掉这个文件。Stata具有直观的图形用户界面和命令行接口,使得用户可以灵活地根据自己的喜好进行操作。4.等待软件安装完成,先不要打开软件;

2024-07-06 20:54:56 2310

原创 「Eplan 2.3-2023各个版本安装包」网盘资源下载

EPLAN的用户界面友好,支持自动连线、编号等功能,提高了设计工作的效率。此外,它的在线翻译功能也极大地便利了国际间的沟通与协作。EPLAN软件以其项目化的设计方法而著称,它支持用户从整体项目的角度出发,构建结构化的设计理念和标准化工作流程,然后细化到具体的局部细节设计。这种设计理念与一般的CAD软件不同,CAD更侧重于图形绘制,而EPLAN则强调电气属性、逻辑以及整个项目的统筹规划。同时,对于小型企业或个体工程师来说,EPLAN可能相对昂贵,尤其是在购买授权和培训上的成本可能会成为一个负担。

2024-04-28 09:55:24 2049

空空如也

空空如也

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

TA关注的人

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