文章目录并发编程1.概述1.1 并行和并发1.2 Go语言并发优势2. goroutine2.1 goroutine的定义2.2 goroutine的创建和运行2.2.1 mian goroutine2.2.2 其他goroutine2.3 runtime包2.3.1 Gosched3.2.3 Goexit2.3.3 GOMAXPROCS3 channel3.1 概述3.2 channel的创建
转载 2023-08-18 18:49:53
79阅读
具体地,可以使用http.ListenAndServe函数创建HTTP服务器,使用http.Get函数和http.Post函数访问HTTP服务器,并使用http.ResponseWriter和议的网络编程
原创 5月前
15阅读
文章目录数组与切片切片扩容函数传参MapMap底层数据结构key的访问map的遍历遍历的随机性遍历当中发生的扩容扩容扩容触发条件条件1-扩充条件2-压实接口底层结构ifaceeface接口类型是不是nil方法接收者Channel底层结构channel的发送策略channel的接收策略channel的关闭happend-before标准库ContextContext取消timerCtxreflec
1.网络编程基本介绍Golang的主要设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端程序必不可少也是至关重要的一部分网络编程有两种:1)TCP socket编程,是网络编程的主流。底层是基于TCP/IP协议的,例如QQ等客户端。2)b/s结构(Browser/Server,浏览器/服务器模式)的是http编程,使用浏览器访问服务器时,使用的是http协议,而http底层依旧是用tcp
文章目录一、实现TCP通信1、TCP协议2、TCP服务端3、TCP客户端4、TCP粘包(1)为什么会出现粘包?(2)解决方法(有疑问未解决)二、实现UDP通信1、UDP协议2、UDP服务端3、UDP客户端 网络基础、socket编程就不普及了,对我来说,真的是老油条的概念了。python网络编程 一、实现TCP通信1、TCP协议TCP/IP(Transmission Control Proto
协议 从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定:  第一次,传输文件名,接收方接收到文件名,应答OK给传输方;  第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;  第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。 由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A
原创 2022-06-20 19:45:24
1563阅读
GO语言网络编程
原创 2022-07-11 23:03:30
172阅读
底层编程Go语言的设计包含了诸多安全策略,限制了可能导致程序运行出错的用法。编译时类型检查可以发现大多数类型不匹配的操作,例如两个字符串做减法的错误。字符串、map、slice和chan等所有的内置类型,都有严格的类型转换规则。对于无法静态检测到的错误,例如数组访问越界或使用空指针,运行时动态检测可以保证程序在遇到问题的时候立即终止并打印相关的错误信息。自动内存管理(垃圾内存自动回收)可以消除大部
转载 2023-09-29 19:48:02
307阅读
文章目录GoLang之深入解析Go中Slice底层实现1.前言2.证明slice指向数组3.证明数组是值类型4.slice由来5.slice数据结构6.slice中获取一块内存地址7.从go的内存地址中构造一个slice7.1方法一7.2方法二8.make创建slice9.字面量创建slice10.nil切片11.空切片11.切片扩容12.扩容策略13.扩容后新数组or老数组?13.1老数组情况
文章目录Go语言简介Go 是编译型语言Go的特点语法简单并发模型内存分配垃圾回收静态链接标准库工具链为并发而生的Go语言 Go语言简介Go语言不但能让你访问底层操作系统,还提供了强大的网络编程和并发编程支持。可以进行网络编程、系统编程、并发编程、分布式编程。具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。Go 从C语言继承了相似的表达式语法、控制流结构、基础数据类型、调用参数传值、指
前引Go语言是为并发而生的语言Go语言是为数不多的在语言层面实现并发编程语言;也正是Go语言的并发特性,吸引了全球无数的开发者。并发vs并行并发(concurrency)两个或两个以上的任务在一段时间内被执行。我们不必在意这些任务在某一个时间点是否是同时执行,我们只关心在一段时间内,哪怕是很短的时间段(一秒或者两秒)是否执行解决了两个或两个以上任务。典型单核CPU执行逻辑。多个任务同时推进,交
目录一、互联网协议介绍二、互联网分层模型2.1 物理层2.2 数据链路层2.3 网络层2.4 传输层2.5 应用层三、socket编程四、socket图解五、Go语言实现TCP通信5.1 TCP协议5.2 TCP服务端5.3 TCP客户端六、TCP黏包6.1 黏包示例6.2 为什么会出现粘包6.3 解决办法七、Go语言实现UDP通信7.1 UDP协议7.2 UDP服务端7.3 UDP客户端更新、更
原创 2021-04-15 15:54:28
279阅读
现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程。 关于网络编程其实是一个很庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解更详细的网络编程请自行检索和阅读专
原创 2021-07-21 15:29:21
180阅读
Go语言基础之网络编程 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go
原创 2022-08-22 17:14:37
170阅读
Go语言的前世今生一、 为什么需要一个新的语言最近十年来,C/C++在计算领域没有很好得到发展,并没有新的系统编程语言出现。对开发程度和系统效率在很多情况下不能兼得。要么执行效率高,但低效的开发和编译,如C++;要么执行低效,但拥有有效的编译,如.NET、Java;所以需要一种拥有较高效的执行速度、编译速度和开发速度的编程语言Go就横空出世了。传统的语言比如c++,大家花费太多时间来学习如何使用
函数声明函数自变量为同类型可以合并类型只有输出没有输入的函数声明函数变量的使用总结 Go语言函数支持的特性包括:◇ 参数数量不固定(可变参数)。 ◇ 匿名函数及其闭包。 ◇ 函数本身作为值传递。 ◇ 函数的延迟执行。 ◇ 把函数作为接口调用声明函数声明的格式:func 函数名(参数列表) (返回参数列表){ 函数体 } 可读形式 : func 函数名(参数1 类型1, 参数2 类型2, 参
转载 2023-09-01 08:53:09
92阅读
 一、编码类规范1、命名规范    命名是代码规范中很重要的一部分,统一的命名规则有利于提高的代码的可读性,好的命名仅仅通过命名就可以获取到足够多的信息    Go在命名时以字母a到Z或a到Z或下划线开头,后面跟着零或更多的字母、下划线和数字(0到9)。Go不允许在命名时中使用@、$和%等标点符号。Go是一种区分大小写的编程语言。因此,Manpower和manpower是两个不同的命名      
转载 2023-07-12 00:58:58
302阅读
文章目录开发环境工程模板工程应用命令行应用命名规范文件名包名规范变量命名规范特有名词常量命名规范常量枚举常量类型结构体命名规范接口命名规范函数或方法命名规范receiver命名规范可见性规范编码规范导入标准库、第三方或其它包代码基本约束注释规范包级别例1:main包例2:功能复杂的非 main结构、接口及其它类型函数与方法注释中的一些关键字函数或方法声明单元测试附录Go常见命令GO开发目录配置
转载 2023-07-12 00:09:20
162阅读
JetBrains GoLand 2022是一款专业的GO语言编程软件。JetBrains GoLand支持编码辅助功能,IDE会分析你的代码,然后在符号之间寻找连接。提供代码提示,快速导航,灵活的错误分析能力以及格式化和重构功能。JetBrains GoLand 2022 强大的静态代码分析能力和符合人体工程学的设计,使开发者不仅仅是在工作,更是一种愉快的编程体验。 一、泛型  1、改
转载 2023-07-18 12:25:11
146阅读
本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性。本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一个说明。该规范参考了 go 语言官方代码的风格制定。一、 命名规范命名是代码规范中很重要的一部分,统一的命名规则有利于提高的代码的可读性,好的命名仅仅通过命名就可以获取到足够多的信息。Go在命名时以字
  • 1
  • 2
  • 3
  • 4
  • 5