avatar
文章
109
标签
78
分类
38

首页
时间轴
标签
分类
清单
  • 游戏
  • 电影
  • 访客
镜像
  • 国内镜像
  • 国外镜像
模型屋
友链
关于
Gallifrey的计算机学习日记
搜索
首页
时间轴
标签
分类
清单
  • 游戏
  • 电影
  • 访客
镜像
  • 国内镜像
  • 国外镜像
模型屋
友链
关于

Gallifrey的计算机学习日记

  • AI架构3
  • Agent开发9
  • Android学习笔记12
  • Docker1
  • Flutter1
  • Go8
  • Hexo插件1
  • Java1
  • Java框架5
  • Kafka2
  • Kubernetes1
  • Li1
  • Linux6
  • Prometheus4
  • 依赖管理1
  • 开发工具1
  • 微信小程序开发5
  • 操作系统6
  • 数据库6
  • 日常表1
  • 架构设计1
  • 版本控制2
  • 算法17
  • 计算机常识5
  • 计算机网络3
  • 课设报告3
  • 软件体系架构3
GMP模型的设计思想
发表于2023-07-09|Go|Go•GMP模型
前言通过上一期的文章,我们知道了Go调度器的由来及作用:Go调度器用于合理分配goroutine(go的协程)到内核级线程中运行,实现高并发 概念GMP模型是指Go调度器的内部模型结构,GMP三个字母是三个不同单词的简写: G: Goroutine, Go 语言中的协程。每个 G 代表一个要执行的协程,包含了该协程的栈空间、执行状态等信息。调度器通过管理和调度 G 来实现并发执行。 M:Machine,操作系统(内核级)线程(OS thread)。M 是调度器和协程的中间层,负责将协程(G)绑定到线程(M)上执行。Go 调度器会根据系统的负载情况动态创建和销毁 M,以适应并发需求。每个 M 拥有自己的调用栈和一些状态信息,包括指令指针、堆栈指针等。 Go调度器最多可以创建 10000 个M。 P: Processor,逻辑处理器。P 是调度器的实际执行者,负责执行 G。一个 P 在某个时刻只能执行一个 G,但可以执行多个 G。P 执行 G 的过程中,G 会占用 P 的上下文(上下文切换),直到执行完成或发生阻塞。一个 M 可以绑定到一个 P 上执行。 要注意的是:M是操作系统(内核 ...
调度器的由来和分析
发表于2023-07-05|Go|Go•GMP模型
前言我在看刘丹冰老师的视频教程Golang深入理解GPM模型时,发现《调度器的由来和分析》这章节有很多有同学在弹幕和评论区表示质疑和不解,所以我结合了一些操作系统的知识对这一章节进行的重构,创作了本文章。如果有出现纰漏,请及时指出。 用户态|内核态我们的操作系统有两种状态,用户态和内核态,我们可以简单把用户态和内核态理解为平民阶级和特权阶级。应用程序在用户态下执行时,只能访问受限的资源和执行受限的指令集。内核态下运行的代码则可以直接操作硬件设备、更改系统资源状态、执行特权指令等。这是为了保护系统,因为一些特权指令是很危险的,例如清空内存。如果我们不得不使用用户态下的特权指令时,可以通过系统调用切换状态。值得注意的是系统调用发生在用户态,对系统调用的相关处理需要在内核态下进行。 关于更多用户态和内核态的知识,大家可以自行查询相关资料,但是对于接下来课题的学习,大家只要记住一点就好了:用户态和内核态的切换是一种昂贵的操作,涉及到上下文切换、权限切换等开销。 进程|线程|协程进程、协程和线程是计算机中用于实现并发和并行的概念。它们表示了不同的执行单元和调度方式。 进程 进程是操作系统分 ...
Linux任务调度工具
发表于2023-07-01|Linux|Linux
前言本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。 概述Linux中的任务调度是指在特定的时间或条件下执行预定的任务。crond和at都是Linux中用于任务调度的工具。crond可以周期性地执行任务,而at则可以在指定的时间点执行任务。它们都可以帮助用户在特定的时间或条件下自动执行预定的任务,提高工作效率。 crond简要介绍 crond是Linux系统中的一个守护进程,负责周期性地执行预定的任务。它根据预设的时间表(通常是crontab文件)来触发任务的执行。crontab文件包含了一系列的任务定义,每个任务定义包括了任务的执行时间、执行的命令或脚本等信息。crond会根据这些定义,按照设定的时间间隔周期性地执行任务。常见的时间间隔包括每分钟、每小时、每天、每周、每月等。 需要注意的是,at命令在某些系统上可能未预装(本人使用的Ubuntu 22.04未预装),可能需要通过包管理器安装。 基本语法 corntab [选项]:选项如下 选项 说明 -e 编辑corntab文件 -l 查询corntab定时任务调度 -r 递归删 ...
Linux权限管理
发表于2023-06-30|Linux|Linux
前言本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。 概念组 Linux系统中的每个文件和目录都有一组权限,用于控制对它们的访问。这些权限分为三个类别: 所有者(Owner) 所属组(Group) 其他人(Others) 权限 每个类别都有读(Read)、写(Write)和执行(Execute)权限。权限可以使用符号表示法来表示,其中每个类别都有一个字母表示权限: r(读权限):表示可以读取文件内容或查看目录中的文件列表。 w(写权限):表示可以修改文件内容,或在目录中创建、删除和重命名文件。 x(执行权限):对于文件,表示可以执行文件作为可执行程序;对于目录,表示可以进入目录。 注意:如上面所说,如果你对一个文件拥有w权限,你可以修改这个文件,但是你并不能删除这个文件。删除这个文件的前提是你拥有文件所在目录的w权限 在Linux中权限有两种表示方法: 符号表示法 权限符号表示法的格式为:[所有者权限][所属组权限][其他人权限]。 例如,rw-r--r--表示所有者具有读写权限,所属组和其他人只有读权限,数字表示法表示为644 数字表示法 权限 ...
基于均方根(RMS)和过零率的语音/音乐判别器
发表于2023-06-29|Li|回铃音分析•FreeSwitch
原文链接https://www.csd.uoc.gr/~tziritas/papers/07tmm01-panagiotakis-proof.pdf 摘要在过去的几年,我们对开发提取音视频媒体中信息的方法做出了很多重大努力,以便于在数据库中自动存储和检索这些信息。在这项工作中,我们处理音频的特征,这可能用于更大的音视频系统的一部分或者作为独立的系统,例如将音频记以数字信号形式存储在磁盘。我们的目标是先开发一个系统用于对单独的音频分段,然后将其分为两个主要分类之一:语音或者音乐。系统要求包括处理速度以及在实时环境中以尽量小延迟去执行操作。因为限制了两个类,需要提取的特征更少了,而且需要的计算都是直接计算。实验结果表明,在不牺牲性能的情况下,效率非常好。 分段基于平均信号幅度分布,而分类则利用与频率相关的附加特征。 分类算法可以与分段算法结合使用,在这种情况下,它可以验证或否定 音乐-语音或语音-音乐的转换,或者对于给定的音频片段独立地使用。基本特征是在20毫秒的时间间隔内计算的,从而可以将分段的边界精确到20毫秒的准确度。最小的分段长度为一秒。分割和分类算法在一个大型数据集上进行了基准测 ...
Linux常用命令
发表于2023-06-27|Linux|Linux
前言本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。 概述Linux命令是一组用于在Linux操作系统上执行特定任务的命令。这些命令可以在终端窗口中使用,也可以通过脚本自动化执行。Linux命令可以用于管理文件和目录、安装和卸载软件、配置网络、查看系统状态等多种任务。在Linux中,命令通常由一个或多个单词组成,可以带有选项和参数,用于指定命令的行为和操作对象。Linux命令是Linux操作系统中的核心组件之一,掌握Linux命令可以帮助用户更好地管理和使用Linux系统。 下面整理了一些Linux系统中常用的命令,让我们一起看看吧 帮助命令基本介绍 man [命令|配置文件]:获取该命令或配置文件的帮助信息,例如查看ls命令的帮助信息可以输入man ls help [命令] :获取Shell内置命令的帮助信息,例如help cd查看cd命令信息 --help:一般所有的CLI程序都是命令和选项组成的,一般情况都有--help选项(有时候是-h),可以查看该命令及其选项将要说明 关机和重启基本介绍 shutdown -h now:立刻关机 shut ...
Linux的目录结构
发表于2023-06-26|Linux|Linux
前言本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。 概述在Linux中,一切皆为文件。Linux系统会把硬件,网络,系统等各种东西映射成文件。 因此与Windows不同,Linux中的目录结构是有规范的,不同的目录承载着不同的功能。 具体的目录结构下表整理了Linux系统一些具体的目录结构,使用频率和说明 目录 使用频率 说明 /bin 【常用】如/usr/bin,/usr/local/bin Binary的简写,存放着最常用的程序(命令) /sbin 【常用】如/usr/sbin,/usr/local/sbin Super User Binary的简写,存放系统管理员使用的系统管理程序(命令) /home 【常用】如/home/UserName 在Linux中每一个普通用户都有一个自己的目录,一般以自己的用户名命名 /root 【常用】 系统管理员的目录,也称为超级权限者的用户目录 /lib 【不常用】 系统开机所需最基本的动态链接共享库,其作用类似于Windows里的DDL文件。几乎所有的应用程序都需要用到这些共享库 ...
Vi与Vim快速入门
发表于2023-06-25|Linux|Linux
前言本文是视频教程韩顺平 一周学会Linux部分章节的归纳总结,内容补充和错误纠正。 简介Vi是Linux系统内置的文本编辑器 Vim可以看做Vi的升级版本,具有程序编辑功能,可以主动设置以字体的颜色辨别语法正确性,方便程序设计。拥有代码补全,编译错误跳转等方便编程的等丰富功能。 模式三种模式Vi和Vim有三种常用模式 正常模式 当我们用vim或者vi打开一个文档时,默认进入的模式。在这个模式下,我们可以用方向键移动光标,可用【删除字符】或者【删除整行】来处理档案内容,也可以用【复制】,【粘贴】来处理文件数据 插入模式 按下i,I,o,O,a,A,r,R任何一个键可以进入插入模式,一般来说按i就可以了 命令行模式 正常模式下输入:可以进入命令行模式。使用相关命令,可以完成【读取】,【存盘】,【替换】,【离开】,【显示行号】等操作。 模式切换 在终端下,我们可以使用vi xxx 或vim xxx进入相应编辑器的正常模式浏览文件 在正常模式下,我们可以输入i或上面提到的任何一个字母进入插入模式进行文本编辑 在插入模式下,我们可以按esc键退出插入模式 在正常模式下,我们可以输入:或者/进入 ...
MySQL数据库锁机制
发表于2023-06-22|数据库MySQL|MySQL
前言这是一篇关于MySQL数据库索引的文章。该文章是黑马程序员—MySQL数据库入门到精通视频的归纳总结和补充,同时也引用了公共仓库 - 智云知识和Java Guide的部分内容,仅用于个人技术归档和技术分享。 概述锁机制,是处理并发场景下保持数据一致性的使用的机制。我们要清楚一点,锁机制一般都是对于并发事务而言的,下面说到阻塞,一般是多事务操纵数据库时发生的 在MySQL数据库中,按照功能性来分,又可以分为:共享锁和排他锁 按照锁的粒度分类可以分为:全局锁,表级锁,行级锁 共享锁和排他锁不论是表级锁还是行级锁,都存在共享锁(Share Lock,S 锁)和排他锁(Exclusive Lock,X 锁)这两类: 共享锁(S 锁):又称读锁,事务在读取记录的时候获取共享锁,允许多个事务同时获取(锁兼容)。 排他锁(X 锁):又称写锁/独占锁,事务在修改记录的时候获取排他锁,不允许多个事务同时获取。如果一个记录已经被加了排他锁,那其他事务不能再对这条事务加任何类型的锁(锁不兼容)。 排他锁与任何的锁都不兼容,共享锁仅和共享锁兼容。(读读兼容,读写冲突,写写冲突) S 锁 X ...
MySQL数据库InnoDB引擎
发表于2023-06-21|数据库MySQL|MySQL
前言这是一篇关于MySQL数据库索引的文章。该文章是黑马程序员—MySQL数据库入门到精通视频的归纳总结和补充,同时也引用了公共仓库 - 智云知识和Java Guide的部分内容,仅用于个人技术归档和技术分享。 逻辑存储结构 表空间Tablespace(ibd文件):一个MySQL数据库实例可以有多个表空间,用于存储记录,索引等数据 段Segment:分为数据段(Leaf Node segment)、索引段(Non-leaf node segment、回滚段(Rollback segment),InnoDB是索引组织表,数据段是B+树的叶子节点。段用于管理多个Extent(区) 区Extent:表空间单元结构,每个区大小为1M。默认情况下,InnoDB的存储引擎页大小为16K,即一个区一共有64个连续的页 页Page:InnoDB引擎磁盘管理的最小单元,每个页默认为16K。为了保持页的连续性,InnoDB引擎每次从磁盘申请4-5个区。 行Row:InnoDB引擎数据是按照行存放的。 DB_TRX_ID:每次对于记录进行改动时,都会把对应的事务ID赋值给DB_TRX_ID隐藏列 DB ...
1234…11
avatar
Gallifrey
文章
109
标签
78
分类
38
Follow Me
公告
该站点还在修建中ing...
最新文章
Claude Code vs OpenClaw 记忆设计对比2026-04-16
Claude Code 记忆设计解析2026-04-16
OpenClaw 记忆功能实现解析2026-04-16
Eino框架与xeclaw-ai-agent-service架构对比分析2026-04-15
Go基本数据类型底层实现2026-04-13
分类
  • AI架构3
  • Agent开发9
  • Android学习笔记12
    • Intent与BroadcastReceive1
    • UI编程基础3
    • UI进阶3
    • 实战练习5
  • Docker1
标签
AIClaude CodeOpenClaw记忆系统向量检索AgentLLM学习资料Claude-Code架构设计AI编程源码分析源码泄漏开源项目GoCLI工具TDD测试驱动开发FigmaFlutter自动化后端转型EinoGMP模型issueDocker缓存并发sync.Map底层原理数据结构ChannelCSPflutterdartbutterfly魔改Java编程基础Spring
归档
  • 四月 202617
  • 八月 20231
  • 七月 20235
  • 六月 202313
  • 五月 20235
  • 四月 20239
  • 三月 20237
  • 二月 20235
网站资讯
文章数目 :
109
已运行时间 :
本站总字数 :
311k
本站访客数 :
本站总访问量 :
最后更新时间 :
Algolia