- 博客(31)
- 收藏
- 关注
原创 python中多线程使用
Python 中的多线程主要通过threading模块来实现。多线程是一种并发编程的方式,允许程序在同一时间执行多个线程,每个线程执行不同的任务。然而需要注意的是,在 Python 中由于 GIL(全局解释器锁)的存在,多线程并不适用于 CPU 密集型任务,因为 GIL 会导致在任意时刻只有一个线程在解释器中执行 Python 字节码。创建线程使用类可以创建一个新的线程对象。需要提供一个目标函数(通常是一个普通函数)作为线程的执行体。通过调用start()方法启动线程。线程对象方法start()
2024-02-23 17:52:17 603
原创 Golang使用cobra实现命令行程序
Cobra 是 Go 语言中一个强大的命令行应用库。它提供了创建命令行工具所需的基本结构和功能,包括命令解析、子命令、标志、参数、帮助信息等。Cobra 允许你创建命令和嵌套的子命令,形成命令树结构,使得构建复杂的命令行工具变得更加容易。Cobra 支持定义命令的标志和参数,使用户可以通过命令行传递选项和数值。这样可以灵活地配置命令的行为。每个命令都有一个与之关联的运行函数,定义了命令被执行时的操作。这使得你可以在运行命令时执行自定义的逻辑。
2024-02-02 21:06:21 1175
原创 idea修改Vm Options报错Improperly specified Vm option.
idea修改了Vm Options信息,导致再次打开idea报错,记录下处理过程。
2024-01-22 10:00:52 575
原创 golang二分查找算法实现
二分查找算法是一种在有序数组中查找特定元素的高效算法。它的基本思想是通过不断将查找范围缩小一半,来快速定位目标元素是否存在。该算法要求数组是有序的,这是因为有序数组的特性允许我们在每一步中排除掉一半的元素。确定数组的初始搜索范围,通常是整个数组。设定low和high分别为搜索范围的最低和最高索引。计算中间元素的索引,即。将目标值与中间元素进行比较。如果目标值等于中间元素,搜索成功,返回中间元素的索引。如果目标值小于中间元素,说明目标值可能在左半部分,更新。
2024-01-20 17:49:54 1128 1
原创 Golang中记录日志详解
这三个包通常被一起使用是为了实现日志文件的轮转(log rotation)功能。这是一个用于文件日志轮转的 Go 语言包。它允许你创建按时间轮转的日志文件,确保日志文件不会无限制地增长,而是会按照一定的规则进行切割,例如按天、按小时等。这是 Logrus(一个 Go 语言的日志库)的一个钩子(hook)。Logrus 是一个功能强大的日志库,而 lfshook 允许你将 Logrus 的日志输出写入到文件,并且可以结合这个包,实现日志文件的定期轮转。
2024-01-18 12:16:53 1579
原创 golang中make与new有什么区别?
在Go语言中,make是一个用于创建切片、映射(map)和通道(channel)等引用类型的内置函数。make的主要作用是为这些引用类型分配内存并进行初始化。在Go语言中,new是一个用于为值类型分配内存并返回指向新分配的零值实例的指针的内置函数。new主要用于创建值类型的实例,例如结构体。以下是new使用make主要用于初始化引用类型,确保它们可以被直接使用。使用new主要用于为值类型分配内存,返回一个指向新分配的零值实例的指针。选择使用make还是new取决于您要创建的数据结构的类型和初始化需求。
2024-01-17 17:15:48 1590
原创 golang切片(slice)详解
当我们谈论Go语言中的切片时,我们实际上在讨论一种动态数组的抽象。切片提供了对数组的一种更便捷、灵活的访问方式,并且具有动态增长和缩小的能力。这使得切片成为处理变长数据集的理想选择。切片包含一个指向底层数组起始位置的指针,通过这个指针,切片可以访问数组中的元素。切片的长度表示切片中元素的个数,即切片包含的元素数量。容量表示从切片的起始位置到底层数组末尾的元素个数。容量决定了切片的增长空间,即在不重新分配内存的情况下,切片可以继续添加元素的数量。切片的特性使其在处理动态数据集时非常灵活。
2024-01-15 17:52:59 1213 1
原创 golang中context详解
在Go语言中,context包提供了一种在程序中传递截止日期、取消信号、请求范围数据和其他元数据的方式。context包的核心类型是Context接口,它定义了在执行上下文中传递的方法。Context接口的主要方法包括Deadline、Done、Err、Value等。
2024-01-12 17:21:13 1010 3
原创 golang协程goroutine教程
协程是计算机程序的一类组件,推广了协作式多任务的子例程,允许执行被挂起与被恢复。相对子例程而言,协程更为一般和灵活,但在实践中使用没有子例程那样广泛。协程更适合于用来实现彼此熟悉的程序组件,如协作式多任务、异常处理、事件循环、迭代器、无限列表和管道。协程的创建和切换开销更小,因此可以创建更多的协程。协程之间是异步的,也就是说,一个协程的执行不会阻塞另一个协程的执行。协程的调度是由系统来进行的,程序员不需要手动进行调度。可以实现高效的并发编程。可以简化并发编程的代码。
2024-01-11 16:58:13 1403
原创 nginx geo模块使用 nginx识别ip归属地做跳转
Nginx的geo模块允许你根据客户端的IP地址或其他变量的值来执行一些条件分支逻辑。该模块用于根据客户端的地理位置信息执行不同的操作。
2024-01-10 17:53:06 908
原创 python获取起始IP和结束IP的CIDR结果,python netaddr库介绍
netaddr是一个用于处理IP地址和网络的Python库。它提供了一组丰富的功能,包括IP地址、CIDR块、MAC地址等的创建、解析和操作。以下是netaddrIP地址的比较、运算和位操作。检查IP地址类型(IPv4或IPv6)。CIDR块的迭代、合并和分割。判断IP地址是否属于CIDR块。IP范围的迭代和包含判断。MAC地址的格式化和解析。提供对IPv4和IPv6地址之间的转换。支持IP地址、CIDR块、MAC地址的字符串表示和格式化。
2024-01-09 16:19:26 552
原创 golang指针介绍
在Go语言中,指针是一种特殊类型的变量,用于存储其他变量的内存地址。Go语言支持指针,但相对于一些其他编程语言,使用指针的频率较低,因为Go有垃圾回收机制,可以自动管理内存,减少了手动内存管理的需求。取地址符通过在变量前面加上符号,可以获取该变量的内存地址。x := 42ptr = &x使用符号声明指针类型。例如,表示ptr是一个指向int类型的指针。指针的零值是nil,表示该指针不指向任何有效的内存地址。使用符号可以从指针中获取存储在相应内存地址上的值。这个过程叫做解引用。ptr = &x。
2024-01-08 19:24:34 1347
原创 linux服务器ubuntu定时任务cron设置每秒执行
cron是一个在 Unix-like 操作系统中用于定时执行任务的工具。它是 “Chronos”(希腊语,意为时间)的缩写。cron允许用户根据一定的时间间隔、日期或特定的时间点自动运行预定的任务,这些任务通常是脚本或命令。以下是cron用户通过编写称为 “Cron 表达式” 的字符串来指定任务的执行时间。这个表达式包含了分钟、小时、日期、月份和星期几等信息,以及需要运行的命令或脚本。分钟(0-59) 小时(0-23) 日期(1-31) 月份(1-12) 星期几(0-6) 命令例如,
2024-01-07 14:21:26 1699
原创 Git使用详解
在现代软件开发中,高效的版本控制是保证项目顺利进行的关键之一。Git,作为最流行的分布式版本控制系统之一,不仅在开源社区,也在企业级应用中取得了巨大成功。它不仅提供了出色的版本控制能力,还支持团队协作、分支管理、标签操作等强大功能。记录下git的安装,和平常使用到的一些命令。
2024-01-02 16:57:48 1370
原创 python实现文件加密aes加解密二进制文件加解密
有个二进制文件需要进行加解密的需求,选用aes进行加解密,简单记录下实现,python编码。
2024-01-02 15:36:26 571
原创 Linux、Ubuntu 安装jdk8、Linux服务器java环境配置,linux下maven配置
手动安装也是比较简单的,在 Linux 系统上安装了 JDK 和 Maven,并配置了相应的环境变量。可以开始使用 Java 和 Maven 进行开发和构建项目了。
2023-12-29 15:45:23 390
原创 Ubuntu22.04.3安装pyenv、pipenv来管理python版本和每个项目的虚拟环境,vscode中配置pipenv环境
pyenv和pipenv是两个不同的工具,分别用于管理 Python 版本和 Python 项目依赖。这两者之间并没有直接的结合关系。pyenv:pyenv是一个用于管理多个 Python 版本的工具。通过pyenv,你可以轻松地在同一台机器上切换不同版本的 Python,以适应不同项目的需求。每个项目可以有自己的 Python 版本,而不会影响全局的 Python 环境。这在项目需要不同 Python 版本的情况下非常有用。pyenv支持全局 Python 版本的设置,也支持在项目级别进行配置。
2023-12-29 11:58:33 1554
原创 Golang使用redis在 Gin 框架中集成使用 go-redis
确保你的 Redis 服务器正常运行,并根据实际需求配置好连接参数。这样,你就可以在 Gin 框架中集成使用 go-redis,实现与 Redis 服务器的交互。
2023-12-28 18:40:13 1163
原创 Golang Gin框架 go中 websocket使用 gorilla/websocket使用教程
Gin框架是一个用Go语言编写的轻量级Web框架,而gorilla/websocket是Go语言中用于处理WebSocket的库。结合这两者可以实现在Gin应用中添加WebSocket功能。以下是一个简单的例子,演示了如何在Gin应用中使用gorilla/websocket。
2023-12-27 19:11:57 789
原创 vscode开发golang,delve dlv版本1.19高于golang版本 Failed to launch is too old for this version of Delve
使用golang版本和dlv版本对应起来。
2023-12-25 11:51:06 698
国家省份城市区县乡镇sql文件
2024-01-02
全球国家简码列表国家简称代码json格式
2024-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人