- 博客(9)
- 资源 (10)
- 收藏
- 关注
原创 Go 知识点(03)— 非缓冲 channel 的长度始终为 0
我们先看下面代码输出通道的长度是多少?func main() { ch := make(chan string) go func() { ch <- "hello" close(ch) }() time.Sleep(5 * time.Second) fmt.Println("ch length is ", len(ch)) <-ch}是 1 吗? 答案是: 0, 为什么呢?我们来分析下,首先在主协程中创建了一个通道,然后在子协程中往这个通道中发送内容,发送完毕后关
2021-03-31 22:44:48 1343
原创 Go 知识点(02)— channel 使用不当导致的 deadlock
运行下面这段代码输出的结果是什么?package mainimport ( "fmt")func main() { c := make(chan string) // 创建一个无缓冲的通道 c <- "hello world" fmt.Println(<-c)}答案是:会发生死锁fatal error: all goroutines are asleep - deadlock!原因是:对于无缓冲通道,发送方和接收方必须同时准备好才能保证消息的接收。而上面代码发送方
2021-03-30 22:24:24 581
原创 Go 知识点(01)— 主协程与子协程执行顺序
下面代码的输出结果是什么?package mainimport ( "fmt") func main() { for i := 0; i < 10; i++ { go func() { fmt.Println(i) }() }}运行该代码输出的结果是什么? 可能有以下答案大概率什么都没有输出原因是: 只要主协程也就是 main 进程执行完毕,其它的 Go 协程就会立即结束,主协程也就是 Go 程序是不会等待其它 Go 协程的,而此时由于 for 循
2021-03-29 22:17:04 2211
原创 Go 学习笔记(76)— Go 标准库 net/http 创建客户端(发送 GET、POST 请求)
1. Get 请求1.1 使用 net/http 包的快捷方法 GETpackage mainimport ( "fmt" "io/ioutil" "net/http")func main() { resp, err := http.Get("http://www.baidu.com") if err != nil { fmt.Println(err) } defer resp.Body.Close() body, err := ioutil.ReadAll(resp
2021-03-22 22:18:23 1925
原创 Linux 运维常用命令 find、awk、sed、grep、vi、ps、lsof、rpm
先用一个脚本,模拟创建 14 个测试文件:#!/bin/bashfor ((i=1;i<=10;i++));doif [ $i -lt 3 ]then touch /home/mysql/test/test$i.sh touch /home/mysql/test/Phtest$i.sh touch /home/mysql/test/test$i.sh.bakelif [ $i -lt 8 ]then touch /home/mysql/test/test$i.logelse
2021-03-18 23:17:47 885 1
原创 python2 安装faiss-gpu 报错 faiss/faiss/python/swigfaiss.i:241: Error: Unable to find ‘faiss/impl/platfo
1. 安装报错$ sudo pip install faiss-gpu --default-timeout=1000 -i https://pypi.douban.com/simpleDEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop su
2021-03-17 22:16:19 1870 2
原创 pip install faiss-gpu失败unable to execute ‘swig‘: No such file or directory
1. 安装报错unable to execute 'swig': No such file or directoryerror: command 'swig' failed with exit status 12. 解决方法$ sudo apt-get install swig
2021-03-17 22:11:44 1357
原创 Git 错误提交后该如何回滚操作
https://gitbook.cn/books/5f4db870237b0e7d7f238fa0/index.html预备知识git 将项目的存储分为 4 部分,每部分有自己作用,见下图:Workspace:工作区(当前用户操作修改的区域)Index / Stage:暂存区 (add 后的区域)Repository:仓库区或本地仓库(commit 后的区域)Remote:远程仓库(push 后的区域)整体过程可以简述为:工作区–>add–>暂存区–>commi
2021-03-15 23:01:30 3878 1
原创 Git 最全命令总结都在这里了
1. 基本命令git diff不加参数直接输入 git diff : 尚未暂存的文件更新了哪些部分git diff --staged : 已暂存文件与最后一次提交的文件差异git diff --cached : --staged 和 --cached 是同义词git diff --check : 它将会找到可能的空白错误并将它们为你列出来git commitgit commit -m "message": 提交代码请记住,提交时记录的是放在暂存区域的快照。 任何还未暂存文件的仍然保
2021-03-14 21:37:23 207
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人