Traberry
Traberry
全部文章
go语言学习
Java基础(5)
未归档(9)
面经(2)
归档
标签
去牛客网
登录
/
注册
Traberry的博客
求职准备
全部文章
/ go语言学习
(共9篇)
golang中线程与协程的区别
1 栈的大小 OS线程有固定的栈大小,一般为2MB;而对于协程来讲,通常很轻量(比如执行一个打印),不需要太大的栈,所以协程的栈大小最小为2KB;另外,协程的栈大小可以动态改变,最大1GB,以满足特殊使用需求 2 goroutine没有id 每个线程都有一个id,这个在线程创建时就会返回,所以可以很...
2019-10-06
0
1562
爬虫项目-前端展示
整体结构 MVC结构:View提供了html页面,Model定义了数据的结构,Control去获取具体的数据并渲染页面,在服务端生成需要响应的页面 View 1、使用html template模板引擎: 取值,如{{.item}} 循环,如{{range}} 选择,如{{if}}...{{else...
2019-08-14
0
772
爬虫项目-数据存储
ElasticSearch简介 全文搜索引擎 存储:无需建表,使用json格式的文档 搜索:按关键词搜索,无需拼装查询语句 ElasticSearch入门 REST简介 HTTP方法 + 地址 方法是动词,地址是名词 方法包括GET/PUT/POST/DELETE/PACTH/HEAD等 h...
2019-08-12
0
940
用生产线比喻goroutine和channel机制
想象一家蛋糕店有三个厨师,一个烘焙,一个上糖衣,还有一个将每个蛋糕传递到它下一个厨师在生产线。 在狭小的厨房空间环境,每个厨师在完成蛋糕后必须等待下一个厨师已经准备好接受它;这类似于在一个无缓存的channel上进行沟通。 如果在每个厨师之间有一个放置一个蛋糕的额外空...
2019-07-30
0
648
goroutine泄露
下面的例子展示了一个使用了带缓存channel的应用。 它并发地向三个镜像站点发出请求,三个镜像站点分散在不同的地理位置。它们分别将收到的响应发送到带缓存channel,最后接收者只接收第一个收到的响应,也就是最快的那个响应。 因此mirroredQuery函数可能在另外两个响应慢的镜像...
2019-07-30
0
652
爬虫项目-并发调度器
一、架构设计 1、从网络上获取数据的Fetcher是最费时的 2、Fetcher的输出是Parser的输入,因此整合为Worker。系统启用多个worker,并发地从网络上获取内容并解析 3、worker并发以后,多个request如何分配到多个worker上,因此增加Schedu...
2019-07-29
0
612
爬虫项目-单任务爬虫
1、通过http.Get()方法拿到HTML页面文本 -中文乱码问题:“珍爱网”是GBK的编码,需要把文本转换成UTF-8编码【利用golang.org/x/text包转换Reader为UTF8格式】 -如何自动探查网页文本的编码格式【利用golang.org/x/net/html包下的...
2019-07-26
0
677
go格式化输出
%d 十进制整数 %x, %o, %b 十六进制,八进制,二进制整数。 %f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00 %t 布尔:true或false %c 字符(rune) ...
2019-07-24
0
535
go channel
当一个goroutine尝试在一个channel上做send或者receive操作时,这个goroutine会阻塞在调用处,直到另一个goroutine往这个channel里写入、或者接收值,这样两个goroutine才会继续执行channel操作之后的逻辑。 当通过一个无缓存C...
2019-07-24
0
591