golang

ubuntu下配置supervisor 运行golang打包后的可执行文件

apt update apt install supervisor vim /etc/supervisor/supervisord.conf 添加如下配置: command 配置成可执行文件的路径,directory为文件所在目录 [program:tempupService] command= / ......
supervisor 文件 ubuntu golang

Golang 需要至少 5 个操作系统线程

Golang 需要至少 5 个操作系统线程 主线程:Golang 代码执行的入口点,负责初始化程序,并启动其他 Goroutine。 垃圾回收器线程:Golang 内置了垃圾回收器,使用专门的线程来执行垃圾回收操作,回收不再使用的内存空间。 CPU 核心数个系统线程:每个核心需要一个系统线程来支持并 ......
线程 Golang 系统

golang 是抢占式调度 如果协程不主动让出 或者 阻塞 可以一直运行

设置处理的器的数量为1 是什么将 处理器设置为1 就是可以控制线程数呢? 在 GMP 模型中,P 与 M 一对一的挂载形式,通过设定 GOMAXPROCS 变量就能控制并行线程数。 演示案例 package main import ( "fmt" "runtime" "runtime/debug" ......
golang

golang蒙特卡洛树算法实现五子棋AI

已经实现蒙特卡洛树算法的通用逻辑,只需要对应结构体实现相关接口就可以直接使用该算法。 优化算法主要优化GetActions生成下一步动作,要尽可能少,去掉无意义的动作。 以及优化ActionPolicy从众多动作挑选比较优秀的动作。对应五子棋就是执行该动作后当前局面评分最高。 package mai ......
五子棋 算法 golang

(转)Golang 编程思维和工程实战

原文:https://zhuanlan.zhihu.com/p/426368274 一 Golang 编程思维 首先,我们先来看下最基本的,就是 Golang 的学习技巧,比如: 通读 Golang 的一些好的文章如 Frequently Asked Questions (FAQ)或者看看 FAQ ......
实战 思维 Golang 工程

Golang 包相关问题

gopath、vendor、dep 、go module 的区别 gopath:要设置环境变量,然后执行执行 go install进行安装 vendor: 将第三方依赖完全和工程整合且本地化,构建项目速度快,但冗余度很高。很万能的方法 dep可以直接给引入的第三方包一个专门的目录,并且可以专门制定一 ......
Golang 问题

容器云平台监控告警体系(四)—— Golang应用接入Prometheus

1、概述 目前容器云平台中的容器仅支持获取CPU使用率、内存使用率、网络流入速率和网络流出速率这4个指标,如果想监控应用程序的性能指标或者想更加细粒度的监控应用程序的运行状态指标的话,则需要在应用程序中内置对Prometheus的支持或者部署独立于应用程序的Exporter,然后由Prometheu ......
容器 Prometheus 体系 Golang 平台

golang实现WOL唤醒

WOL(Wake-On-LAN)是一种远程开机的技术,可以通过网络发送特定的数据包来唤醒处于待机状态的计算机。在Golang中,可以使用net包来实现WOL唤醒。 以下是实现WOL唤醒的步骤: 获取目标计算机的MAC地址。 MAC地址是计算机的唯一标识符,可以用于唤醒目标计算机。可以通过以下命令获取 ......
golang WOL

golang跳出for select 循环

引用自:https://blog.csdn.net/m0_57116438/article/details/121693943 通常在for循环中,使用break可以跳出循环,但是注意在go语言中,for select配合时,break并不能跳出循环。 func testSelectFor(chEx ......
golang select for

Golang GMP模型

Golang GMP模型 GMP 是 Go 语言运行时(runtime)中的一个重要组件,它是 Go 语言的调度模型。GMP 模型使用三种不同的线程来处理 Go 程序:Goroutine、M(Machine)和 P(Processor)。在 GMP 模型中,Goroutine 是实际编写的程序代码, ......
模型 Golang GMP

Golang gin 中间件类型

在 Gin 框架中,中间件是一种对请求进行预处理或拦截的机制。中间件可以用来实现很多功能,比如身份验证、请求日志记录、请求参数验证等。在 Gin 中,中间件可以是一个函数或一个结构体。 下面分别介绍这两种中间件类型,并给出例子。 函数式中间件 函数式中间件是一个接受 gin.HandlerFunc ......
中间件 类型 Golang gin

golang并发编程-模式

1. Generator 9. Queue package main import ( "fmt" "sync" "time" ) const limit = 4 const work = 100 func process(wg *sync.WaitGroup, work int, queue ch ......
模式 golang

(转)Golang panic用法

原文:https://zhuanlan.zhihu.com/p/373653492 Golang panic用法 Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很 ......
Golang panic

Golang 挑战:编写函数 walk(x interface{}, fn func(string)),参数为结构体 x,并对 x 中的所有字符串字段调用 fn 函数。难度级别:递归。

golang 挑战:编写函数 walk(x interface{}, fn func(string)),参数为结构体 x,并对 x 中的所有字符串字段调用 fn 函数。难度级别:递归。 为此,我们需要使用 反射。 计算中的反射提供了程序检查自身结构体的能力,特别是通过类型,这是元编程的一种形式。这也 ......
函数 字段 字符串 interface 字符

golang select底层原理

前言 select 是操作系统中的系统调用,我们经常会使用 select、poll 和 epoll 等函数构建 I/O 多路复用模型提升程序的性能。Go 语言的 select 与操作系统中的 select 比较相似,但也有不同点,它只支持channel收发的多路复用。 这里已go1.19版本为例,编 ......
底层 原理 golang select

golang mutex底层原理

数据结构 位于sync/mutex.go type Mutex struct { state int32 sema uint32 } state locked:锁的状态,是否已经上锁 woken:表示是否有协程被唤醒,0表示没有协程被唤醒,1表示有协程被唤醒 starving:是否处于饥饿模式 wa ......
底层 原理 golang mutex

Golang-切片、数组

1.数组的初始化、赋值 数组是有长度的,不能越界,和PHP的数组不一样 var myArray [5]int myArray := [5]int{1, 2, 3, 4, 5} fmt.Printf("%v", myArray) //[1,2,3,4,5] 2.slice的初始化、赋值 切片也就是没有 ......
数组 Golang

【go】谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)

教程集为您提供谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)等资源,欢迎您收藏本站,我们将为您提供最新的谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)资源 文章目录 一、概述 二、负载均衡算法 2.1 概述 2.2 轮询算法 2.3 随机算法 2.4 随机轮询算法 ......
算法 一致性 Golang

Golang-包管理

为什么需要包管理 在项目开发过程中会使用的外部的包,成熟的编程语言都有自己的包管理工具,比如说PHP的composer,Java的maven,node的npm,所以在1.11版本Golang引入了go mod的方式的管理包 go mod是怎么管理的 在空白项目地址输入命令 go mod init x ......
Golang

深信服2023届春招Golang开发笔试题D卷 代码题

相对比较简单 T1 编辑距离 纯模版题 T2 题意:已知 $1 <= n,x<=1e6$ ,你确定一个数$v$,按顺序给出 $n$ 个数$a_i$,当$|a_i-v|<=x$时这个$a_i$记为OK,否则你就需要给v再指定一个值满足之前的条件。 请问最少需要变动多少次v的值才能使得所有$a_i$为O ......
试题 代码 Golang 2023

golang pprof监控系列(2) —— memory,block,mutex 使用

golang pprof监控系列(2) —— memory,block,mutex 使用 大家好,我是蓝胖子。 profile的中文被翻译轮廓,对于计算机程序而言,抛开业务逻辑不谈,它的轮廓是是啥呢?不就是cpu,内存,各种阻塞开销,线程,协程概况 这些运行指标或环境。golang语言自带了工具库来 ......
golang memory block pprof mutex

golang目录下main包调用问题

问题 # command-line-arguments 本质原因: 在同级目录下,main包文件不能直接调用必须选中加载才可以 在同级目录下,其他非main包则就可以导入包,可以关联调用 解决 ......
目录 golang 问题 main

使用golang+antlr4构建一个自己的语言解析器(完结篇)

Goland 中Antlr4插件 在goland中安装Antlr4插件,用于识别输入的字符在在语法文件中生成的语法树的样子,大概就是如下的摸样 下载步骤: 1.点击文件中的设置选项 2.在插件目录下输入Antlr4搜索插件 3.点击安装即可 编写自己的语言语法文件 编写语法之前,我们首先要构思一下自 ......
语言 golang antlr4 antlr

动手造轮子自己实现人工智能神经网络(ANN),解决鸢尾花分类问题Golang1.18实现

人工智能神经网络( Artificial Neural Network,又称为ANN)是一种由人工神经元组成的网络结构,神经网络结构是所有机器学习的基本结构,换句话说,无论是深度学习还是强化学习都是基于神经网络结构进行构建。关于人工神经元,请参见:人工智能机器学习底层原理剖析,人造神经元,您一定能看 ......

05 Golang 流程控制

一、条件判断 1. 条件判断简介 条件语句是用来判断给定的条件是否满足(表达式值是否为true或者false),并根据判断的结果决定执行情况的语句。go语言中的条件语句主要包含如下几种情况: if - else if - else 语句:if 语句由一个布尔表达式后紧跟一个或多个语句组成,语句后可以 ......
流程 Golang 05

使用golang+antlr4构建一个自己的语言解析器(二)

Antlr4文件解析流程 该图展示了一个语言应用程序中的基本流动过程 输入一个字符流,首先经过词法分析,获取各个Token 然后经过语法分析,组成语法分析树 Antlr4语法书写规范 语法关键字和使用 | 符号 | 作用 | | | | | ? | 表达式可选| | * | 表达式出现0此或多次| ......
语言 golang antlr4 antlr

开源: golang+vue的论坛 和 node+react的IM系统

最近基于开源做了两个自己系统 都是UI非常好看的 我将两个系统的数据互通了 附带了一些产品思考 只需要一个邮箱就可以登录 无密码 无手机号 尽量简化流程 第一个论坛 站点 https://bulita.cn 现在主要是聚合招聘信息 目标是尽可能降低招聘和求职的门槛 以上海和远程工作为主 开源地址 h ......
golang 系统 react 论坛 node

Golang中关于超时的实现方法

1、通过两个不同的管道设置sleep超时 package main import ( "context" "fmt" "time" ) const ( WorkUseTime = 500 * time.Millisecond Timeout = 100 * time.Millisecond ) // ......
方法 Golang

windows系统下golang安装教程

go下载软件地址: https://studygolang.com/dl/golang/go1.19.5.windows-amd64.msi window安装软件,点下一步下一步安装即可 记得有一步是将go加入系统环境变量,需要点击一下。忘记截图了 安装完后运行cmd命令窗口运行命令 go vers ......
windows 教程 golang 系统

linux系统下golang安装教程

Linux下安装Golang 系统:centos 7.8 mkdir /home/src wget https://golang.google.cn/dl/go1.19.5.linux-amd64.tar.gz 解压 tar -xf go1.19.5.linux-amd64.tar.gz -C /u ......
教程 golang 系统 linux