- 博客(37)
- 收藏
- 关注
原创 【golang】为什么协程开销小于线程
免去内核介入:用户态调度无特权级切换。轻量级上下文:仅保存必要寄存器,不涉及内存管理等内核状态。协作式调度:减少不必要的抢占和缓存失效。
2025-04-09 09:20:23
432
原创 【golang】逃逸分析
在 Go 语言中,逃逸分析是编译器的一种优化技术,用于决定变量是分配在栈上还是堆上。通过逃逸分析,Go 编译器可以减少不必要的堆分配,从而提高程序的性能。go buildGo 编译器提供了-gcflags标志,可以输出逃逸分析的结果。sgo run如果只想运行程序并查看逃逸分析结果,可以直接使用go runGo 提供了工具,可以更详细地分析编译过程。
2025-04-09 09:18:05
954
原创 【golang】堆和栈的区别
堆和栈是两种不同的内存分配区域,它们在内存分配、生命周期、性能等方面存在显著差异。通过理解堆和栈的区别,开发者可以编写出更高效的 Go 程序。
2025-04-09 09:04:39
370
原创 【golang】单元测试,以及出现undefined时的解决方案
单元测试 要对某一方法进行测试时,例如如下这一简单减法函数,选中函数名后右键->转到->测试1)Empty test file就是一个空文件,我们可以自己写测试的逻辑但是直接点绿色箭头运行会出问题:找不到包。我们要在终端打开此目录,带上此次测试所包含的包。这样便可正常测试。go test -v [文件名]2).Test for function就会生成模板,他会自己定义一个test的结构体切片,然后我们在add test case
2024-12-02 20:09:16
676
原创 【Linux】设计文件系统(C实现)
定义结构体//最大文件数//权限int size;//大小//内容//创建时间//修改时间//最后一次访问时间} File;获取当前时间(在显示创建时间,修改时间和访问时间时使用,用于记录当前时间)//获取当前时间创建文件(创建时注意要赋权)printf("文件数量已达上限,无法创建新文件。\n");return;printf("请输入文件名: ");printf("请输入文件权限(八进制): ");i++) {printf("文件已存在。\n");return;
2024-12-02 14:30:50
875
原创 【linux】shell编程
系统变量:如$HOME$PWD$USER等,由系统定义。自定义变量$$:当前进程PID:最近一个后台进程PID:上一个命令的退出状态。
2024-09-21 22:31:18
1595
1
原创 【linux】nice命令
nice命令是Linux系统中用于调整进程优先级的工具,通过调整进程的优先级,可以影响进程在CPU上的资源分配和执行顺序。在使用nice命令时,应谨慎考虑系统的负载情况和进程的实际需求,以合理利用系统资源并优化系统性能。
2024-09-21 22:14:09
838
原创 【linux】kill命令
kill命令在 Linux 和类 Unix 系统中用于向进程发送信号,默认情况下是发送 SIGTERM(信号 15),请求程序终止运行。如果程序没有响应 SIGTERM 信号,可以使用 SIGKILL(信号 9)强制终止进程,但这种方式不会给进程提供清理资源的机会。
2024-09-21 22:09:17
872
原创 【linux】file命令
在Linux和Unix系统中,file命令是一个非常实用的工具,用于识别文件类型。它通过分析文件的内容或文件的元数据(如文件头信息),来猜测文件是什么类型的。这对于处理未知文件或验证文件类型非常有帮助。
2024-09-19 19:50:58
494
原创 【linux】df命令
df命令在 Linux 系统中用于显示磁盘空间的使用情况。它提供了文件系统中各个分区或挂载点的总空间、已用空间、剩余空间以及挂载点等信息。这对于监控和管理磁盘空间非常有用。
2024-09-19 19:45:49
434
原创 【linux】 date命令
date命令在 Linux 和类 Unix 系统中用于显示和设置系统的日期和时间。这个命令非常灵活,允许用户以不同的格式查看日期和时间,也可以用来设置新的日期和时间(虽然这需要管理员权限,通常是通过 sudo 或以 root 用户身份执行)。
2024-09-18 12:30:37
1281
原创 【linux】pwd命令
pwd命令在 Linux 和类 Unix 系统中用于显示当前工作目录的完整路径。它是 "print working directory" 的缩写。当你在终端或命令行界面中工作时,你可能会在不同的目录(或文件夹)之间切换。pwd命令帮助你确定你当前位于哪个目录。
2024-09-18 12:27:20
508
原创 【linux】 ls命令
ls命令是 Linux 和 Unix 系统中用于列出目录内容的命令。它显示指定目录下的文件和子目录列表。如果不指定目录,ls默认显示当前目录下的内容。
2024-09-17 12:02:49
767
原创 【linux】ln 命令
硬链接和软链接都是文件系统中的引用,但它们的工作方式和对文件系统的影响不同。硬链接直接指向文件的 inode,而软链接则包含另一个文件的路径。硬链接不能跨文件系统,不能链接目录,且删除最后一个硬链接会删除文件内容。软链接可以跨文件系统,可以链接目录,但如果目标文件或目录被移动或删除,软链接就会断开。
2024-09-17 12:00:25
475
原创 【linux】cp命令
cp命令在 Linux 系统中用于复制文件或目录。它是非常基础且常用的命令之一,允许用户将文件从一个位置复制到另一个位置,或者将目录及其内容复制到另一个位置。
2024-09-15 15:47:24
658
原创 【linux】chmod命令
chmod命令用于改变文件或目录的权限。权限定义了谁可以读取、写入或执行文件或目录。chmod命令通过修改文件或目录的权限位来工作,这些权限位定义了文件或目录的拥有者、组和其他用户的访问权限。
2024-09-15 15:44:18
556
原创 【linux】 cd命令
cd命令在 Linux 和 Unix 系统中用于改变当前工作目录(Current Directory)。它是命令行界面中非常基础且常用的命令之一,允许用户快速地在文件系统中导航。
2024-09-14 14:36:23
522
原创 【linux】cat 命令
cat命令是 Linux 和 Unix 系统中非常基础且常用的一个命令,它的全称是 "concatenate" 的缩写,意为“连接”或“串联”。尽管名字听起来像是专门用于连接文件的,但cat命令的用途远不止于此。它主要用于查看、创建、合并文件内容,以及将文件内容输出到标准输出设备(通常是屏幕)或另一个文件中。
2024-09-14 14:30:05
767
原创 【C#】字符串处理器
3.查找字符串中最长的单词,并显示其长度。1.定义StringProcessor类。4.将字符串中的所有单词首字母大写。5. 将字符串中的所有单词反转。2.统计字符串中单词的数量。
2024-06-19 15:52:03
820
原创 【C#】汽车租赁系统设计与实现
通过设计和实现一个简单的汽车租赁系统,掌握C#面向对象编程的基本知识,熟悉类和对象的使用、列表数据结构的操作,以及简单的命令行界面设计。以上就是完整的代码及实现。汽车租赁系统设计与实现。
2024-06-18 12:06:36
2199
原创 【C#项目】使用百度ai人脸库实现人脸识别
本项目利用百度AI的人脸识别技术,开发了一个可以进行人脸识别的应用程序。项目涉及网络连接、文件处理、图像处理、数据库管理及音视频处理等多个技术领域。本文将详细介绍项目的整体架构和实现过程。
2024-06-17 15:20:08
2321
原创 【C#】图形图像编程
关键点在于使用Bitmap对象作为绘图表面,从而保留之前的绘图内容。通过调用panel1.Invalidate方法触发重绘,并在Paint事件中绘制Bitmap对象,这样可以确保每次绘制新内容时,之前的内容不会被清除。在Panel的Paint事件中使用Graphics.DrawImage方法将Bitmap绘制到Panel上,以实现内容的保留和更新。2 .在设计界面中拉取两个button,一个textbox(用于输出自己想输出的内容(艺术字))以及一个panel(输出在panel上显示)
2024-06-15 21:31:38
1974
4
原创 【C#】线程设计3:threadpool
将任务排队到线程池中执行。这种方法可以有效利用系统资源,提高并发性能,但需要注意线程安全。: Windows Forms 控件不是线程安全的,因此在非UI线程上操作UI控件需要通过。: 为了实现按字符换行输出,需要遍历输入的字符串,逐个处理每个字符并添加到。中,同时每个字符后面加上换行符。方法,可以在需要时安全地更新。(1).控件:group。方法来切换到UI线程。: 封装一个线程安全的。
2024-06-06 14:51:50
523
原创 【C#】线程设计2:backgroundWorker
来处理后台操作,可以防止UI线程阻塞,并且能够安全地更新UI控件。事件处理程序中,将文本逐个字符添加到一个。中获取字符列表,并将每个字符逐个添加到。中,每个字符后面都添加换行符。(1).控件:group。
2024-06-06 14:47:20
460
原创 demo,bug,程序员口中的“常驻客”到底是什么意思
"demo"通常指的是"demonstration",即演示或展示的意思。在软件开发中,一个"demo"通常是指一个简单的、可展示的版本或样本,用来展示软件产品的某些特性或功能。这可以是一个演示性的原型、一个演示用的应用程序,或者一个演示性的功能模块。"demo"通常用于展示给客户、用户或其他利益相关者,以便演示软件的潜力和功能。如果你有做程序员的朋友,肯定能常听到他说demo和bug,到底是什么意思呢?bug一般是指程序的漏洞,而相应的debug就是找到漏洞。
2024-06-05 20:35:06
973
原创 【算法】找到范围内素数:埃拉托斯特尼筛法(Sieve of Eratosthenes)
埃拉托斯特尼筛法(Sieve of Eratosthenes)用于找到小于n的所有素数(质数)
2024-06-05 12:39:43
381
原创 将某xlsx文件转为UTF-8编码格式
在使用jupyter对数据进行处理时,导入的文件可能不是UTF-8编码格式,这时就要将文件转为UTF-8。(3)选择其他格式,将文件类型选为csv UTF-8格式。(4)再次将文件导入jupyter,便可正常访问。(1)将文件使用excel打开。(2)点击左上角文件。
2024-06-04 16:26:01
2620
原创 线程,线程池及线程安全
在多线程编程中,多个线程可能同时访问和修改共享数据,如果没有合适的同步机制来保护共享数据,就会导致数据竞争、数据损坏和不确定的行为。: 线程池是一种管理和复用线程的机制,它在程序启动时创建一定数量的线程,并且维护一个任务队列。当有任务需要执行时,线程池会从空闲线程中选择一个来执行任务,执行完任务后线程会返回到线程池中等待下一个任务。线程池可以有效地减少线程的创建和销毁开销,并且可以控制并发线程的数量,防止系统资源被耗尽。在多线程编程中,一个进程可以包含多个线程,这些线程可以并行或者并发地执行不同的任务。
2024-06-03 11:05:38
762
原创 【2023蓝桥杯c++A组】【启发式合并】颜色平衡树
重儿子是指子树大小最大的儿子,通过优先遍历重儿子可以减少递归的深度,从而提高算法的效率。:DFS遍历本身是一个递归过程,对于树的算法来说,递归实现是常见的。但是,在本算法中,由于需要处理重儿子和轻儿子的不同情况,并且需要在遍历过程中维护多个数组,因此递归实现的细节较多,容易出错。算法的核心在于通过重儿子的概念来减少不必要的重复计算,同时利用颜色计数数组来快速判断当前子树是否满足条件(即所有颜色的数量都相等)。)遍历中,利用了重儿子的性质来优化计算过程,同时通过维护一个颜色的计数数组()、颜色计数的和数组(
2024-05-31 20:30:14
643
原创 【C#】如何使用C#与SQL Server数据库进行交互
(1)在工具箱中拖出dataGridView控件和botton控件(可以改名是其功能明确)(3)创建成功后会有源数据库以及其镜像(我们后续操作都在镜像完成就好)(5)在设计界面再拖入botton以及一个textbox(用于根据姓名查询)()(3)双击双击botton2,进入代码编写(插入数据)(4)双击双击botton3,进入代码编写(查询数据)(2)双击botton1,进入代码编写(检查链接)(4)新建数据库XSCJDB(学生成绩数据库)(6)编写botton5代码(按名字查询)
2024-05-31 14:10:21
1782
原创 在高级语言中操作数据库,调用存储过程并检验存储过程的效果(以c#为例)
然后进入右击项目,选中管理NuGet程序包,在其中下载MySQL.Data,安装完成后会显示已成功安装。:如果存储过程可能返回多个结果集,或者你可能需要执行多个命令并处理它们的结果,你需要使用更复杂的逻辑来管理这些结果集。例如,你可能需要使用。:确保存储过程的参数名与你在C#代码中使用的参数名完全匹配是很重要的。如果参数名不匹配,存储过程可能无法正确执行或可能返回错误的结果。:确保你的项目包含了所有必要的依赖项,例如MySql.Data库。:确保你在C#中提供的参数类型与存储过程中定义的参数类型匹配。
2024-05-23 14:14:36
853
1
原创 通过访问学生课程数据库中的表,设计数据库中函数,并编写嵌入式程序,使用vs和c#
1.这两个代码示例都是基于C#语言和MySQL数据库的操作,实现了对MySQL数据库的连接、查询和更新等基本操作。它们展示了如何使用C#中的MySql.Data.MySqlClient命名空间提供的类和方法来连接和操作MySQL数据库。2.总体而言,这些示例程序提供了一个关于如何使用C#连接和操作MySQL数据库的基本流程和范例。通过学习这些示例程序,我们可以了解到如何使用C#编写与MySQL数据库交互的程序,包括建立连接、执行查询和更新操作、读取执行结果等。
2024-05-21 22:59:05
1010
原创 使用MySQL workbench编写存储过程
3.创建存储过程discrete_math_grade,用于统计课程的不同成绩区间的人数。1.首先要先在数据库中创建SCHEMA 's-t',在其中建课程表course,sc,student。2.然后为各表插入数据。统计数学的成绩分布情况。
2024-05-21 22:31:37
1025
原创 【C#】音乐播放器
同时,还对文件的扩展名进行了简单的检查,以区分是否为 ogg 格式的文件,并在不是 ogg 文件时控制 Windows Media Player 控件播放音频文件。// 设置 Windows Media Player 控件的 URL 为当前选中音乐文件的路径,并播放该文件。// 设置 Windows Media Player 控件的 URL 为下一首音乐文件的路径,并播放该文件。// 设置 Windows Media Player 控件的音量为滑动条的值。// 初始化输出设备,并开始播放读取的音频文件。
2024-05-09 17:57:10
1278
1
原创 【C#】实现工厂管理
/ 定义接口 IProductionFactory,包含生产鸭脖和鸭翅的方法。武汉工厂能生生产鸭脖和鸭翅,南京工厂只能生产鸭翅,长沙工厂只能生产鸭脖。:理解工厂模式的概念,以及如何通过接口和多态性来实现不同工厂的统一调用。// 武汉工厂生产鸭脖和鸭翅。// 南京工厂无法生产鸭脖。// 长沙工厂无法生产鸭翅。// 创建不同工厂的实例。// 南京工厂只生产鸭翅。// 长沙工厂只生产鸭脖。的作用,以及如何使用委托来动态调用不同工厂的生产方法。namespace windows课程作业1。
2024-04-05 17:27:46
977
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人