08 2018 档案
TCP协议,UDP,以及TCP通信服务器的文件传输
摘要:TCP通信过程 下图是一次TCP通讯的时序图。TCP连接建立断开。包含大家熟知的三次握手和四次握手。 在这个例子中,首先客户端主动发起连接、发送请求,然后服务器端响应请求,然后客户端主动关闭连接。两条竖线表示通讯的两端,从上到下表示时间的先后顺序。注意,数据从一端传到网络的另一端也需要时间,所以图中
阅读全文
互斥锁,读写锁和条件变量
摘要:锁 前面我们为了解决协程同步的问题我们使用了channel,但是GO也提供了传统的同步工具。 它们都在GO的标准库代码包sync和sync/atomic中。 下面我们看一下锁的应用。 什么是锁呢?就是某个协程(线程)在访问某个资源时先锁住,防止其它协程的访问,等访问完毕解锁后其他协程再来加锁进行访问
阅读全文
Channel
摘要:channel channel是Go语言中的一个核心类型,可以把它看成管道。并发核心单元通过它就可以发送或者接收数据进行通讯,这在一定程度上又进一步降低了编程的难度。 channel是一个数据类型,主要用来解决协程的同步问题以及协程之间数据共享(数据传递)的问题。 goroutine运行在相同的地址
阅读全文
go语言文件操作
摘要:文件操作 字符串处理函数 字符串在开发中使用频率较高,我们经常需要对字符串进行拆分、判断等操作,可以借助Go标准库中的strings包快速达到处理字符串的目录。除Contains、Join、Trim、Replace等我们学过的字符串处理函数之外,以下函数也常常会被用到。 字符串分割 示例代码: 按空
阅读全文
golang并发(1)介绍
摘要:概述 简而言之,所谓并发编程是指在一台处理器上“同时”处理多个任务。 随着硬件的发展,并发程序变得越来越重要。Web服务器会一次处理成千上万的请求。平板电脑和手机app在渲染用户画面同时还会后台执行各种计算任务和网络请求。即使是传统的批处理问题--读取数据,计算,写输出--现在也会用并发来隐藏掉I/
阅读全文
2. 基础类型
摘要:2.1 命名 Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。 Go语言
阅读全文
1.3 第一个Go程序
摘要:1.3.1 Hello Go // hello.go package main import ( "fmt" ) func main() { fmt.Println("Hello Go!") } 1.3.2 代码分析 每个Go源代码文件的开头都是一个package声明,表示该Go代码所属的包。包是G
阅读全文
1.2.2 标准命令概述
摘要:Go语言中包含了大量用于处理Go语言代码的命令和工具。其中,go命令就是最常用的一个,它有许多子命令。这些子命令都拥有不同的功能,如下所示。 l build:用于编译给定的代码包或Go语言源码文件及其依赖包。 l clean:用于清除执行其他go命令后遗留的目录和文件。 l doc:用于执行godo
阅读全文
浙公网安备 33010602011771号