
golang
文章平均质量分 57
golang学习记录
hello一二三
这个作者很懒,什么都没留下…
展开
-
golang 特殊标识符
1、import _ 下划线 _ 用来忽略结果。原创 2022-09-11 21:39:29 · 488 阅读 · 0 评论 -
WIN10系统安装RabbitMQ
在终端输入:rabbitmq-plugins enable rabbitmq_management。右键 -> 选择 以管理员身份运行。然后一路 next。出现如下情况说明 Erlang 安装成功,并且可以使用。右键,以管理员身份运行, 一路 next 即可。默认账号和密码都是: guest。注意: 一定要配置环境变量。再path 中添加记录。...原创 2022-08-06 10:50:07 · 662 阅读 · 0 评论 -
Centos7 安装 RabbitMQ
在github上找到对应自己系统版本的el7的erlang版本。3.3、检查是否安装成功查看erlang的版本出现如下,表示安装成功。我的系统版本是Centos7的版本,而且发行版是el7。账户,默认的账户没有权限登录不了。所以我们需要创建登录账号。安装RabbitMQ前需要安装socat。5.1、查看rabbitMQ服务启动的状态。1、检查Linux的系统版本。5.4、再次查看服务启动状态。服务已经启动,则先停止服务。4、安装RabbitMQ。管理,需要执行如下命令启用。...原创 2022-08-01 00:05:51 · 1819 阅读 · 0 评论 -
golang 中的 iota 常量
iota 是 Go 语言的一个预定义标识符,它表示的含义是 const 声明块(包括单行声明)中每个常量所处位置在块中的偏移值(从零开始)。同时,每一行中的 iota 自身也是一个无类型常量。golang 中的常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。原创 2022-07-30 15:10:44 · 297 阅读 · 0 评论 -
go的并发安全和锁的问题
有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)下面的例子说明发生了资源竞态问题package mainimport ( "fmt" "sync")//go的并发安全和锁var wg sync.WaitGroupvar num int// 有时候在Go代码中可能会存在多个goroutine同时操作一个资源(临界区),这种情况会发生竞态问题(数据竞态)func addNum() { defer wg.Do.原创 2022-05-18 11:19:20 · 200 阅读 · 0 评论 -
GMP 原理与调度
一、Golang “调度器” 的由来?(1) 单进程时代不需要调度器我们知道,一切的软件都是跑在操作系统上,真正用来干活 (计算) 的是 CPU。早期的操作系统每个程序就是一个进程,知道一个程序运行完,才能进行下一个进程,就是 “单进程时代”一切的程序只能串行发生。早期的单进程操作系统,面临 2 个问题: 单一的执行流程,计算机只能一个任务一个任务处理。 进程阻塞所带来的 CPU 时间浪费。 那么能不能有多个进程来宏观一起来执行多个任务呢?后来操作系统就具有了转载 2022-05-17 10:07:29 · 287 阅读 · 0 评论 -
go的并发介绍
进程和线程 1. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 2. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 3.一个进程可以创建和撤销多个线程;同一个进程中的多个线程之间可以并发执行。并发和并行 1. 多线程程序在一个核的cpu上运行,就是并发。 2. 多线程程序在多个核的cpu上运行,就是并行。 协程和线程协程:独立的栈空间,共享堆空间,调度由用户自己控制原创 2022-05-17 09:26:56 · 418 阅读 · 0 评论 -
OSI七层模型
OSI七层模型如图物理层我们的电脑要与外界互联网通信,需要先把电脑连接网络,我们可以用双绞线、光纤、无线电波等方式。这就叫做”实物理层”,它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。数据链路层单纯的0和1没有任何意义,所以我们使用者会为其赋予一些特定的含义,规定解读电信号的方式:例如:多少个电信号算一组?每个信号位有何意义?这就是”数据链接层”的功能,它在”物理层”的上方,确定了物理层传输的0和1的分组方式及代表的意义。早期的时候,每家公原创 2022-05-16 19:39:35 · 276 阅读 · 0 评论 -
beego安装使用
bee 工具简介bee 工具是一个为了协助快速开发 beego 项目而创建的项目,通过 bee 您可以很容易的进行 beego 项目的创建、热编译、开发、测试、和部署。bee 工具的安装命令行运行下面命令go get github.com/beego/bee错误处理1、git https 无法获取时,请配置本地的 git,关闭 https 验证git config --global http.sslVerify false2、出现dial tcp 172.217.160.原创 2022-05-14 18:32:07 · 474 阅读 · 0 评论 -
go语言特性
1、开放源代码这显示了Go作者开放的态度以及 营造语言生态的决心。Go本身就是用Go语言编写的。2、静态类型和编译型在Go中,每个变量或常量都必须在声明时指定类型,且不可改变。另外,程序必须通过编译生成归档文件或可执行文件,而后才能被使用或执行。不过,其语法非常简介,就像一些解释型脚本语言那样,易学易用。3、跨平台这主要是指跨计算架构和操作系统。目前,他已经支持绝大部分主流的计算架构和操作系统,并且这个范围还在不断扩大。只要下载与之对应的G...原创 2022-05-14 15:25:11 · 357 阅读 · 0 评论 -
beego session
1、beego 内置了 session 模块,目前 session 模块支持的后端引擎包括 memory、cookie、file、mysql、redis、couchbase、memcache、postgres,用户也可以根据相应的 interface 实现自己的引擎。beego 中使用 session 相当方便,只要在 main 入口函数中设置beego.BConfig.WebConfig.Session.SessionOn = true或者通过配置文件配置sessionon = tru原创 2022-04-30 18:00:51 · 9229 阅读 · 0 评论 -
golang写入字符串文件
package mainimport ( "bufio" "fmt" "os")// 一次性写入所有文件func writeAllFile() { // 要写入的文件地址和名称 index.html filePath := "/write/index.html" // 要写入的文件内容 content := `<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8".原创 2022-04-18 11:20:03 · 1103 阅读 · 0 评论 -
golang读取文件简单实现
package mainimport ( "bufio" "fmt" "io" "os")// 带缓存方式的读取文件func readFileBuffer() { filePath := "/index.html" file, err := os.Open(filePath) if err != nil { fmt.Println("read file err", err) } // 关闭文件句柄 defer file.Close() // 带缓存方式读取文件 re.原创 2022-04-18 11:15:59 · 692 阅读 · 0 评论 -
slice 切片详解
1、slice 实现原理Slice又称动态数组,依托数组实现,可以方便的进行扩容、传递等,实际使用中比数组更灵活。 Slice依托数组实现,底层数组对用户屏蔽,在底层数组容量不足时可以实现自动重分配并生成新的Slice。 源码包中 src/runtime/slice.go:slice 定义了Slice的数据结构:type slice struct { array unsafe.Pointer len int cap ...原创 2022-04-06 19:38:40 · 3188 阅读 · 0 评论