2020
10-10
10-10
golang开发中channel使用
channel[通道]是golang的一种重要特性,正是因为channel的存在才使得golang不同于其它语言。channel使得并发编程变得简单容易有趣。channel的概念和语法一个channel可以理解为一个先进先出的消息队列。channel用来在协程[goroutine]之前传递数据,准确的说,是用来传递数据的所有权。一个设计良好的程序应该确保同一时刻channel里面的数据只会被同一个协程拥有,这样就可以避免并发带来的数据不安全问题[dataraces]。正文channel...
继续阅读 >
最近在做一个需求,功能很简单,就是开发一个轻量级客户端,将一个指定文件中的内容通过TCP发送到服务器。由于该文件特别大,有可能到达100G的数量级,因此处理起来会比较慢,为了给用户提供比较友好的展示界面,因此,在其中加入了进度条显示功能。在这里,说一下我在实现该进度条功能时的一些思路。成果演示先看一下最终的成品效果展示:该进度条一共分三部分组成,第一部分是主体进度条,第二部分是百分比,第三部分是当前完...
前言都说go标准库实用,Api设计简洁。这次就用go标准库中的net/http包实现一个简洁的httpweb服务器,包括三种版本。v1最简单版直接使用http.HandleFunc(partern,function(http.ResponseWriter,*http.Request){})HandleFunc接受两个参数,第一个为路由地址,第二个为处理方法。//v1funcmain(){http.HandleFunc("/",func(whttp.ResponseWriter,r*http.Request){w.Write([]byte("httpserverv1"))})http.Hand...