摘要:
`WaitGroup`在go语言中,用于线程同步,单从字面意思理解,wait等待的意思,group组、团队的意思,WaitGroup就是指等待一组,等待一个系列执行完成后才会继续向下执行。 先说说WaitGroup的用途: 它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所 阅读全文
摘要:
"进程" (process)和 "线程" (thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇 "材料" ,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限, 阅读全文
摘要:
多任务 很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“ ”的操作系统。 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在 阅读全文
摘要:
[TOC] 在上一节中我们介绍了 "数组和切片的实现原理" ,这一节会介绍 Golang 中的另一个集合元素 — 哈希,也就是 Map 的实现原理;哈希表是除了数组之外,最常见的数据结构,几乎所有的语言都会有数组和哈希表这两种集合元素,有的语言将数组实现成列表,有的语言将哈希表称作结构体或者字典,但 阅读全文
摘要:
[TOC] 数组和切片是 Go 语言中常见的数据结构,很多刚刚使用 Go 的开发者往往会混淆这两个概念,数组作为最常见的集合在编程语言中是非常重要的,除了数组之外,Go 语言引入了另一个概念 — 切片,切片与数组有一些类似,但是它们的不同之处导致使用上会产生巨大的差别。 这里我们将从 Go 语言 " 阅读全文
摘要:
[TOC] Go语言拥有一套单元测试和性能测试系统,仅需要添加很少的代码就可以快速测试一段需求代码。 性能测试系统可以给出代码的性能数据,帮助测试者分析性能问题。 单元测试 概述 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。对于单元测试中单元的含义,一般要根据实 阅读全文
摘要:
最近接了个把数据导出到word文档的需求,之前一直都是使用PHPExcel库导出excel的,还是头次接到导出到word文档的需求,我想既然有PHPExcel,那么肯定也会有PHPWord库吧,在网上一搜,还真有!而且都是phpoffice家的。看了下文档,最终决定使用模板的方式来导出数据,感觉也是 阅读全文
摘要:
反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 支持反射的语言可以在程序编译期将变量的反射信息,如字段名称、类型信息、结构体信息等整合到可执行文件中,并给程序提供接口访问反射信息,这样 阅读全文
摘要:
什么是HTTP协议? HTTP协议全称Hyper Text Transfer Protocol,翻译过来就是超文本传输协议,位于TCP/IP四层模型当中的应用层。 HTTP协议通过请求/响应的方式,在客户端和服务端之间进行通信。 这一切看起来很美好,但是HTTP协议有一个致命的缺点: 不够安全 。 阅读全文
摘要:
[TOC] 什么是shell? 当谈到命令时,我们实际上指的是 。 shell是一个接收由键盘输入的命令,并将其传递给操作系统来执行的程序 。几乎所有的Linux发行版都提供shell程序,该程序来自于称之为bash的GNU项目。bash是Bourne Again Shell的首字母缩写,Bourn 阅读全文