![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Golang学习
寒士°、
这个作者很懒,什么都没留下…
展开
-
【Go】聊天服务器
【代码】【Go】聊天服务器。原创 2023-05-08 19:59:33 · 204 阅读 · 1 评论 -
【Go】并发目录遍历
主线程通过time.Tick创建一个通道,周期性的触发tick事件,输出当前已经遍历的文件大小。通过一个线程,观察waitgroup的线程是否结束,结束则关闭fileSizes通道。版本2利用20个大小的缓冲通道作为信号量,最高打开20个并发遍历目录的线程。版本3,通过增加一个done信号量和一个监控命令行输入的线程,终止程序运行。通过一个线程不断遍历文件目录,传输大小给fileSizes。通过定义fileSizes通道,阻塞主线程,计算大小。各子线程通过done通道来决定是否结束线程。原创 2023-05-08 18:55:06 · 303 阅读 · 0 评论 -
【Go】爬虫
思路为通过worklist通道传输链接列表,然后通过遍历worklist中的链接,如果未被访问过则通过unsendLinks通道传输给爬虫。定义forEachNode遍历根为n的每个子节点,定义两个函数变量pre和post,表示前序访问子节点或是后序访问子节点。然后定义一个匿名函数visitNode,用来遍历Node中包含的所有超链接,再将链接加入links中,等待后续遍历。通过一个20的循环建立一个20个爬虫线程,爬虫返回的连接再重复上面通道传输过程。另外的一种写法,使用结构体记录链接的深度。原创 2023-05-08 18:36:07 · 828 阅读 · 0 评论 -
[学习]goroutine & channel
spinner为死循环程序,循环打印-\|/,模拟程序运行通过go 启动一个线程调用spinner函数然后计算fib,输出结果,main函数结束,强制终止所有线程。原创 2023-05-08 18:02:37 · 321 阅读 · 0 评论 -
[记录]结构体排序
【代码】[记录]结构体排序。原创 2023-05-08 16:27:57 · 47 阅读 · 0 评论 -
【记录】http database
【代码】【记录】http database。原创 2023-05-08 16:10:08 · 57 阅读 · 0 评论 -
【记录】位向量
位向量用来表示元素是否存在,第i位为1则表示第i个元素存在,使用64位无符号整数数组表示。则一个数组元素可表示64个元素是否存在。使用word, bit := x/64, uint(x%64)定位是数组的哪一个元素和第几位。通过(1<<bit)寻找到第i个元素。再使用位操作 操作数组。原创 2023-05-08 15:41:24 · 41 阅读 · 0 评论 -
【记录】一些Go的奇葩写法
相反,调用squares()()则虽然类似于调用f,但不知道创建的这个squares()地址为多少,所以其中的x也不知道再如何调用,等于重新创建一个函数变量。定义f为squares函数,调用f即调用squares函数,但x的值递增,说明x虽为局部变量,但还存在于f中,main看来x已经返回,但在f中x还未返回。函数squares返回一个另一个函数,调用squares创建一个局部变量x并返回一个匿名函数。变长函数,使用...,调用这个函数的时候可以传递该类型任意数目的参数。原创 2023-05-08 15:16:58 · 73 阅读 · 0 评论 -
Golang管理包
使用golang编写项目的时候,除了安装自带的包之外,还涉及到引入他人或是自己写的包,这就涉及到了如何正确管理和引入的问题了。原创 2023-03-28 15:07:56 · 111 阅读 · 0 评论