golang 并发编程

CPU基本概念 要了解golang的并发编程,需要先简单了解cpu是什么? cpu是计算机的“大脑”,不仅能实现基本算术运算,还能通过总线控制和协调电子配件的输入和输出。我们编写的程序代码,比如打印语句,最终是由cpu从内存中取得指令、解码、执行。cpu执行指令速度非常快,通常执行一条指令只需要零点几纳秒。 早期的计算机是单核的,计算机设计师在设计体系结构为了能让处理器跑得更快,把cpu设计为交替地取得和执行指令。简...

[阅读更多 →]

简单用 golang 做并发爬虫

对于没有接触过swoole的PHP开发者,可能对于并发编程或异步编程比较陌生。并发编程就是在短时间内完成多个任务,以往我们都是一个任务完成后,再完成下一个任务。比如接下来采集的网站,我是分几个小模块进行处理,首先先采集章节的链接,然后在根据章节的链接获取内容,最后再把获取到的内容写到文件里。 安装依赖包 github.com/PuerkitoBio/goquery 处理文档,类似Jquery github.com/...

[阅读更多 →]

Golang 练手系列 002-模板循环数据

模板的{{range}}与Go语法里面的range类似,循环操作数据。 跟第一章一样,先定义路由和对应的处理函数,不同的是就是创建模板的步骤,因为模板里如果要注入函数,必须在在调用ParseFiles函数前注入函数,否则会报模板错误。 func Number(number int) int { return number + 1 } funcMap := template.FuncMap{"number": ...

[阅读更多 →]

Golang 练手系列 001-引入静态模板

大部份做了几年的PHP程序员都会打算学多一门编程语言,很多都选择Golang或Python,相比之下我比较喜欢Golang,现在想通过一些小案例来练手,也希望对大家有帮助。 Go自带http库,包含对路由的处理,比PHP处理起来方便多了。 路由定义 首先先定义路由处理函数: func handleHome(w http.ResponseWriter, r *http.Request){ } 然后定义路由并绑定到刚刚...

[阅读更多 →]

golang 判断字符是否为汉字

Golang判断字符是否为汉字,主要有两种方式,一种是使用正则匹配,另外一种是使用系统自带的unicode包。 正则匹配 var str := "你好,Golang" var hzRegexp, _ = regexp.Compile("([\u4e00-\u9fa5]+)") fmt.Println(hzRegexp.MatchString(str)) 运行结果是true,如果要查找子匹配项,可以这样找: sub :...

[阅读更多 →]