12 2017 档案
摘要:支持可变长参数列表的函数可以支持任意个传入参数,比如fmt.Println函数就是一个支持可变长参数列表的函数。 需要注意的是,可变长参数应该是函数定义的最右边的参数,即最后一个参数 Go 中的一些内置函数都是可变参数函数,例如:append() 函数: 如何工作 可变参数函数的工作原理就是把可变参
阅读全文
摘要:对于程序及服务的控制,本质上而言就是正确的启动,并可控的停止或退出。在go语言中,其实就是程序安全退出、服务控制两个方面。核心在于系统信号获取、Go Concurrency Patterns、以及基本的代码封装 程序安全退出 执行代码非安全写法 在代码部署后,我们可能因为服务配置发生变化或其他各种原
阅读全文
摘要:go语言的time包 1. 组成 time.Duration(时长,耗时) time.Time(时间点)time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ]time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1
阅读全文
摘要:1.func Fields(s string) []string,这个函数的作用是按照1:n个空格来分割字符串最后返回的是[]string的切片 执行结果: 2.func FieldsFunc(s string, f func(rune) bool) []string一看就了解了,这就是根据自定义函
阅读全文
摘要:转自:https://mp.weixin.qq.com/s/HUqTC6i7aSUBVq0bsqfQXw sync.WaitGroup() 用来做Goroutine的等待,当使用go启动多个并发程序,通过waitgroup可以等待所有go协程结束后再执行后面的代码逻辑 用途:阻塞协程的执行,直到所有
阅读全文
摘要:原子操作:操作仅由一个独立的CPU指令代表和完成。保证并发环境下原子操作的绝对安全 标准库代码包:sync/atomic atomic是最轻量级的锁,在一些场景下直接使用atomic包还是很有效的 CAS操作的优势是,可以在不形成临界区和创建互斥量的情况下完成并发安全的值替换操作。这可以大大的减少同
阅读全文
摘要:主流的语言都支持,可链接到 github ,亲测golang client 简单好用 http://www.eclipse.org/paho/downloads.php
阅读全文
摘要:#include #include #include #include #include int main(int argc, char *argv[]) { /* 服务器端套接字 */ int server_sockfd; /* 客户端套接字 */ int client_sockfd; int len; /* 服务器网络地址结构体 */ struct sockaddr...
阅读全文
摘要:本来系统是win7,安装centos是用U盘启动安装方式安装成功后,发现win7的系统引导不见了。之前用的是centos6.4安装后依然保留win7引导的,到centos7就不行了解决方法1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /et
阅读全文
摘要:1.多看看「官方文档」 我们很多的问题和技术细节,其实,只要我们认真将官方文档过一遍,会发觉大部分的问题和认识模糊的地方都消失了。甚至,你还能发现自己之前通过搜索获得的到一些资料,可能是不准确或者已经过时的。官方文档是真正的好东西,因为编写文档的人群,通常就是这些技术或者软件的开发者,他们才是对这些
阅读全文