闭包goroutine golang slice
闭包
首先闭包是一个函数加上到创建函数的作用域的连接,'关闭'了函数的自由变量。 闭包的优点:内部函数可以访问到外部函数的局部变量 for(var i=0;i<xx.length;i++){ 函数套函数的形式就可以形成闭包 (function(){ })() } 闭包的缺点:变量会驻留在内存中,造成内存损 ......
golang pprof 监控系列(3) —— memory,block,mutex 统计原理
golang pprof 监控系列(3) —— memory,block,mutex 统计原理 大家好,我是蓝胖子。 在上一篇文章 golang pprof监控系列(2) —— memory,block,mutex 使用里我讲解了这3种性能指标如何在程序中暴露以及各自监控的范围。也有提到memory ......
[Algorithm] DP - 03. Max Subset Sum No Adjacent - Slice window
Write a function that takes in an array of positive integers and returns the maximum sum of non-adjacent elements in the array. If the input array is ......
GO基础:02 Golang 基础简介
一、标识符 标识符是指定义的具有特殊意义的词,例如变量、常量、函数名等等,任何一门语言中都对自己的标识符有特殊定义的规则。在 Go 语言中,标识符由字母数字和下划线组成,并且只能以字母和下划线开头,例如: 数字、字母和下划线组成:123、abc _ 只能以字母和下划线开头:abc123、_sysVa ......
GO基础 - 01 Hello,Golang
一、开发环境搭建 1. 下载 SDK 1 // Go官网下载地址 2 https://golang.org/dl/ 3 4 // Go官方镜像站(推荐) 5 https://golang.google.cn/dl/ 2. 安装 由于Go语言是一门跨平台的编译型语言,我们只需要在一个平台下进行开发 ......
GO基础:03 Golang 基本数据类型
一、整型 1. 整型介绍 Go 语言中,整型可以分为以下几类: 类型描述 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 184 ......
golang CVE-2016-2183漏洞,https需要添加tls设置加密算法CipherSuites白名单,将弱加密算法DES和3DES去掉。
golang CVE-2016-2183漏洞,https需要添加tls设置加密算法白名单,将弱加密算法DES和3DES去掉。 服务端样例代码 package main import ( "crypto/tls" "fmt" "net/http" ) func handler(writer http. ......
闭包的小案例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="wi ......
golang http(s)请求转发
func main(){ router := gin.Default()//创建一个router router.Use(MiddleWare())//中间件,起拦截器的作用 router.Any("/*action", Forward)//所有请求都会经过Forward函数转发 router.Run ......
golang 中的 cronjob
引言 最近做了一个需求,是定时任务相关的。以前定时任务都是通过 linux crontab 去实现的,现在服务上云(k8s)了,尝试了 k8s 的 CronJob,由于公司提供的是界面化工具,使用、查看起来很不方便。于是有了本文,通过一个单 pod 去实现一个常驻服务,去跑定时任务。 经过筛选,选用 ......
ubuntu下配置supervisor 运行golang打包后的可执行文件
apt update apt install supervisor vim /etc/supervisor/supervisord.conf 添加如下配置: command 配置成可执行文件的路径,directory为文件所在目录 [program:tempupService] command= / ......
Golang 需要至少 5 个操作系统线程
Golang 需要至少 5 个操作系统线程 主线程:Golang 代码执行的入口点,负责初始化程序,并启动其他 Goroutine。 垃圾回收器线程:Golang 内置了垃圾回收器,使用专门的线程来执行垃圾回收操作,回收不再使用的内存空间。 CPU 核心数个系统线程:每个核心需要一个系统线程来支持并 ......
golang 是抢占式调度 如果协程不主动让出 或者 阻塞 可以一直运行
设置处理的器的数量为1 是什么将 处理器设置为1 就是可以控制线程数呢? 在 GMP 模型中,P 与 M 一对一的挂载形式,通过设定 GOMAXPROCS 变量就能控制并行线程数。 演示案例 package main import ( "fmt" "runtime" "runtime/debug" ......
闭包是什么?
闭包的定义: 当函数可以记住并访问所在的词法作用域时,就产生了闭包,即使函数是在当前词法作用域之外执行。 我们来看以下代码, function foo() { var a = 2; function bar() { console.log(a); } return bar; } var baz = ......
golang蒙特卡洛树算法实现五子棋AI
已经实现蒙特卡洛树算法的通用逻辑,只需要对应结构体实现相关接口就可以直接使用该算法。 优化算法主要优化GetActions生成下一步动作,要尽可能少,去掉无意义的动作。 以及优化ActionPolicy从众多动作挑选比较优秀的动作。对应五子棋就是执行该动作后当前局面评分最高。 package mai ......
Spark源码解析(二):Spark闭包检查
一、理解 Scala 闭包:Closures 1.1 闭包的定义 闭包就是一个函数和与其相关的引用环境组合的一个整体(实体)。进一步说,闭包是绑定了自由变量的函数实例。 通常来讲,闭包的实现机制是定义一个特殊的数据结构,保存了函数地址指针与闭包创建时的函数的词法环境以及绑定自由变量。 对于闭包最好的 ......
(转)Golang 编程思维和工程实战
原文:https://zhuanlan.zhihu.com/p/426368274 一 Golang 编程思维 首先,我们先来看下最基本的,就是 Golang 的学习技巧,比如: 通读 Golang 的一些好的文章如 Frequently Asked Questions (FAQ)或者看看 FAQ ......
Golang 包相关问题
gopath、vendor、dep 、go module 的区别 gopath:要设置环境变量,然后执行执行 go install进行安装 vendor: 将第三方依赖完全和工程整合且本地化,构建项目速度快,但冗余度很高。很万能的方法 dep可以直接给引入的第三方包一个专门的目录,并且可以专门制定一 ......
容器云平台监控告警体系(四)—— Golang应用接入Prometheus
1、概述 目前容器云平台中的容器仅支持获取CPU使用率、内存使用率、网络流入速率和网络流出速率这4个指标,如果想监控应用程序的性能指标或者想更加细粒度的监控应用程序的运行状态指标的话,则需要在应用程序中内置对Prometheus的支持或者部署独立于应用程序的Exporter,然后由Prometheu ......
golang实现WOL唤醒
WOL(Wake-On-LAN)是一种远程开机的技术,可以通过网络发送特定的数据包来唤醒处于待机状态的计算机。在Golang中,可以使用net包来实现WOL唤醒。 以下是实现WOL唤醒的步骤: 获取目标计算机的MAC地址。 MAC地址是计算机的唯一标识符,可以用于唤醒目标计算机。可以通过以下命令获取 ......
golang跳出for select 循环
引用自:https://blog.csdn.net/m0_57116438/article/details/121693943 通常在for循环中,使用break可以跳出循环,但是注意在go语言中,for select配合时,break并不能跳出循环。 func testSelectFor(chEx ......
Golang GMP模型
Golang GMP模型 GMP 是 Go 语言运行时(runtime)中的一个重要组件,它是 Go 语言的调度模型。GMP 模型使用三种不同的线程来处理 Go 程序:Goroutine、M(Machine)和 P(Processor)。在 GMP 模型中,Goroutine 是实际编写的程序代码, ......
Golang gin 中间件类型
在 Gin 框架中,中间件是一种对请求进行预处理或拦截的机制。中间件可以用来实现很多功能,比如身份验证、请求日志记录、请求参数验证等。在 Gin 中,中间件可以是一个函数或一个结构体。 下面分别介绍这两种中间件类型,并给出例子。 函数式中间件 函数式中间件是一个接受 gin.HandlerFunc ......
unknown container "/system.slice/docker.service"
小小科普一下泄露相关知识: 服务进程泄露 服务进程泄露指的是服务进程中的敏感信息(例如,用户凭据、业务数据等)被未经授权的第三方获取或窃取的情况。泄露可能是有意或无意的,例如,服务进程被黑客攻击,或者员工疏忽将敏感信息保存在不安全的设备或网络中。泄露可能会对组织造成严重的财务损失、声誉损害、法律责任 ......
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 panic用法
原文:https://zhuanlan.zhihu.com/p/373653492 Golang panic用法 Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很 ......
JavaScript系列 -> 截取字符串方法 substring/slice/substr
因为对于截取字符串的方法时常弄混,每次使用的时候,都需要不断的看教程回顾,现在总结到这里: substring substring(start,end): start/end 分别为开始位置和结束位置; 左闭右开,不包含结束位置; start/end 应该为非负整数; start小于0,当成0处理; ......
Golang 挑战:编写函数 walk(x interface{}, fn func(string)),参数为结构体 x,并对 x 中的所有字符串字段调用 fn 函数。难度级别:递归。
golang 挑战:编写函数 walk(x interface{}, fn func(string)),参数为结构体 x,并对 x 中的所有字符串字段调用 fn 函数。难度级别:递归。 为此,我们需要使用 反射。 计算中的反射提供了程序检查自身结构体的能力,特别是通过类型,这是元编程的一种形式。这也 ......
golang select底层原理
前言 select 是操作系统中的系统调用,我们经常会使用 select、poll 和 epoll 等函数构建 I/O 多路复用模型提升程序的性能。Go 语言的 select 与操作系统中的 select 比较相似,但也有不同点,它只支持channel收发的多路复用。 这里已go1.19版本为例,编 ......
golang mutex底层原理
数据结构 位于sync/mutex.go type Mutex struct { state int32 sema uint32 } state locked:锁的状态,是否已经上锁 woken:表示是否有协程被唤醒,0表示没有协程被唤醒,1表示有协程被唤醒 starving:是否处于饥饿模式 wa ......