文章 2023-05-10 来自:开发者社区

学习笔记 | Go 高性能 - 无锁编程

锁是一种常见的同步机制,用来解决多个线程同时访问共享资源导致的数据竞争问题。在高并发场景下,锁的使用可能会成为性能瓶颈,因为线程需要频繁地加锁和释放锁,这会增加上下文切换开销并降低程序的吞吐量。无锁编程(lock-free programming)是一种并发编程技术,主要用于消除多线程编程中锁操作带来的性能损耗。lock-free的优势减少线程阻塞和等待时间避免线程的优先级反转提高并发性能消除竞....

学习笔记 | Go 高性能 - 无锁编程
文章 2023-04-21 来自:开发者社区

编程中有没有遇到被自己蠢哭的BUG;想学go,有未来吗;如何保持持续学习的热情 |极客观点

#极客观点 聚焦于技术方向、程序员职业发展、个人成长等主题,致力于发起有价值的讨论,输出有价值的观点。在本栏目中,我们将为大家推荐在 #极客观点 版块被热烈讨论的话题,甄选出有趣的观点为你呈现。期待我们一起成长和进步呀 今日关键词:#BUG # go # 对技术的热情编程中有遇到过被自己蠢哭的BUG吗?话题发起人:竟然是我啊曾经因为少了个"}" 崩溃一下午..有趣的观点:那应该是我第一次抄代码的....

文章 2023-02-23 来自:开发者社区

Go ---Go语言高级编程中订阅/发布模型例子解析

《Go语言高级编程》确实是本好书,我的反应是:很嫉妒,妈的!写的这么 牛逼!func main() { // 一个过期时间为 0.1秒,缓冲区大小为10的发布者 // 发布者的缓冲区大小决定,订阅者的缓冲区大下 // 如果发布的主题订阅者没有接受将会阻塞这个订阅者 // 新发布的主题该订阅者无法在进行接收 p := NewPublisher(100*time.Millisec...

文章 2023-02-06 来自:开发者社区

Go高性能编程-了解内存对齐以及Go中的类型如何对齐保证

前言本文将介绍Go中的各种字段类型的字节数和对齐保证。详细可见个人博客:https://linzyblog.netlify.app/一、内存对齐1、什么是内存对齐?元素是按照定义顺序一个一个放到内存中去的,但并不是紧密排列的。从结构体存储的首地址开始,每个元素放置到内存中时,它都会认为内存是按照自己的大小(通常它为4字节(32位)或8字节(64位))来划分的,因此元素放置的位置一定会在自己宽度的....

Go高性能编程-了解内存对齐以及Go中的类型如何对齐保证
文章 2022-12-11 来自:开发者社区

Go Web编程实战(10)----模板引擎库text/template包的使用

前言在Go语言中,模板引擎库text/template包主要用于处理任意格式的文本内容,同时还提供了html/template包,用于生成可对抗代码注入的安全HTML文档。模板可以被理解为实现定义好的HTML文档。模板渲染可以被简单理解为文本替换操作。使用相应的数据去替换HTML文档中事先准备好的标记内容。根据MVC模型,模板的诞生是为了将显示与数据分离,即前后端分离。模板引擎模板引擎库text....

Go Web编程实战(10)----模板引擎库text/template包的使用
文章 2022-12-11 来自:开发者社区

Go Web编程实战(9)----创建客户端

创建一个客户端在Go语言的net/http包中,还提供了一个被称为Client的结构体。该结构体提供了Get()、Post()两个请求函数。下面,我们来分别使用代码实现这些请求。Get()请求首先,我们来看一下Get()请求函数的定义,以及其内部的调用逻辑:func Get(url string) (resp *Response, err error) { return DefaultCli...

文章 2022-12-11 来自:开发者社区

Go Web编程实战(8)----创建HTTP与HTTPS服务器端

创建一个HTTP服务端其实Go语言创建一个简单的HTTP服务器程序,与Java Web的servlet差不多。比如,我们这里创建一个简单打印“Hello World”的程序。代码如下:package main import ( "fmt" "net/http" ) func helloworld(w http.ResponseWriter,r *http.Request) { fm...

Go Web编程实战(8)----创建HTTP与HTTPS服务器端
文章 2022-12-11 来自:开发者社区

Go Web编程实战(7)----并发goroutine

什么是goroutine?在Go语言中,每一个并发执行的活动被称为goroutine。使用go关键字可以创建goroutine,其完整定义如下:go func_name()其中,go是关键字,需要放在一个需要调用的函数之前;func_name()是定义好的函数或者闭包。在程序的开发中,先将go关键字声明放到一个需要调用的函数之前,然后在相同地址空间调用运行这个函数,这样该函数执行时,便会作为一个....

Go Web编程实战(7)----并发goroutine
文章 2022-12-11 来自:开发者社区

Go Web编程实战(6)----反射

反射与其他语言一样,Go语言的反射同样是指,计算机程序在运行时,可以访问、检测和修改它本身状态或行为的一种能力。其在reflect包里,定义了一个接口和一个结构体,即reflect.Type接口与reflect.Value结构体,它们提供了很多函数来获取存储在接口里的类型信息。reflect.Type接口:主要提供关于类型相关的信息reflect.Value结构体:主要提供关于值相关的信息,可以....

Go Web编程实战(6)----反射
文章 2022-12-11 来自:开发者社区

Go Web编程实战(5)----面向对象编程(二)

接口使用了接口实现了多态与继承,我们也应该详细了解接口的使用方式。接口(interface)类型是对其他类型行为的概括与抽象。接口定义了一组方法,但是不包含这些方法的具体实现。本质上接口依旧是一个类型,确切的说,是指针类型。如果一个类型实现了某个接口,则所有使用这个接口的地方都支持这种类型的值。需要注意的是,如果实现接口的类型支持相等运算,那么可以比较,否则会报错。示例如下:func main(....

Go Web编程实战(5)----面向对象编程(二)

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注