摘要:        
三次握手  主动发起请求端,发送SYN(SYN表示建立连接)  被动建立连接请求端,会去应答ACK同时发送SYN  主动发起请求端,发送应答ACK (ACK表示响应) 四次挥手 1主动关闭连接请求端,发送FIN (FIN表示关闭连接) 2被动关闭连接请求端,应答ACK 半关闭完成 3被动关闭连接请求端,发送FIN 4主动关闭连接请求端,应答ACK 因...    阅读全文
posted @ 2019-12-19 20:49
离地最远的星
阅读(312)
评论(0)
推荐(0)
        
            
        
        
摘要:        
字典被设置成not addressble,所以不可以直接修改value成员(结构体或数组) 正确做法是返回整个value,待修改后再设置字典键值,或直接用指针类型 如果返回的是指针,可以透过指针直接修改目标对象 在创建时预先准备足够空间有助于提升性能,减少扩张时的内存分配和重新哈希操作来自为知笔记(Wiz)    阅读全文
posted @ 2019-12-19 20:45
离地最远的星
阅读(277)
评论(0)
推荐(0)
        
            
        
        
摘要:        
itoa可以套公式,下面的依旧会按照公式运算 package main import "fmt" func main() { const ( b = 1 << (10 * iota) kb mb tb pb ) fmt.Println(b, kb, mb, tb, pb) //1 1024...    阅读全文
posted @ 2019-12-19 20:43
离地最远的星
阅读(167)
评论(0)
推荐(0)
        
            
        
        
摘要:        
io包 type Reader interface{ Read(p []byte)(n int,err error) } type Writer interface{ Write(p []byte)(n int,err err) } for循环中一次读出文件 n := -1 for { n, err = file.Read(bs) if n== 0 || e...    阅读全文
posted @ 2019-12-19 20:37
离地最远的星
阅读(276)
评论(0)
推荐(0)
        
            
        
        
摘要:        
go启动一个简单的httpserver package main import ( "fmt" "log" "net/http" ) func main() { http.HandleFunc("/", sayhelloName) //设置访问的路由 err := http.ListenAndServe(":8080", nil) //设置监听的端口 i...    阅读全文
posted @ 2019-12-19 20:33
离地最远的星
阅读(100)
评论(0)
推荐(0)
        
            
        
        
摘要:        
Go语言runtime.Gosched()函数浅析 这个函数的作用是让当前goroutine让出CPU,好让其它的goroutine获得执行的机会。同时,当前的goroutine也会在未来的某个时间点继续运行。 请看下面这个例子(show.go): package main import ( "fmt" ) func showNumber (i int) { fmt.Pr...    阅读全文
posted @ 2019-12-19 20:29
离地最远的星
阅读(433)
评论(0)
推荐(0)
        
            
        
        
摘要:        
package main import ( "fmt" "runtime" ) func main() { n := runtime.NumCPU() fmt.Print(n) runtime.GOMAXPROCS(n - 1) //设置cpu运行的数目 } 来自为知笔记(Wiz)    阅读全文
posted @ 2019-12-19 20:26
离地最远的星
阅读(837)
评论(0)
推荐(0)
        
            
        
        
摘要:        
go奉行通过通信来共享内存,不像c和c++通过共享内存来通信 协程是轻量级的线程,编译器做优化** 有独立的栈空间 共享程序堆空间 调度由用户控制 协程是轻量级的线程 并行:多个cpu共同执行 并发 多个程序在cpu上不停的切换 go协程也是抢占式的 情景:在多线程情况下如果多个线程去下载同一个视频,这样多个线程可能会同时被io阻塞 这段时间所有线程都阻塞了,线程轮询所有线程都...    阅读全文
posted @ 2019-12-19 20:18
离地最远的星
阅读(505)
评论(0)
推荐(0)
        
            
        
        
摘要:        
sync.Cond代表条件变量,需要配置锁才能有用 package main import ( "fmt" "runtime" "sync" "time" ) func main() { runtime.GOMAXPROCS(4) testCond() } func testCond() { c := sync.NewCond(...    阅读全文
posted @ 2019-12-19 20:17
离地最远的星
阅读(228)
评论(0)
推荐(0)
        
            
        
        
摘要:        
判断io读取是否结束,尽量用if n==0这种方式,因为可以判断很多种情况 package main import ( "fmt" "io" "net/http" ) func handler(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello")) fmt.Println(r....    阅读全文
posted @ 2019-12-19 20:15
离地最远的星
阅读(508)
评论(0)
推荐(0)
        
 
                    
                     
                    
                 
                    
                
 
         浙公网安备 33010602011771号
浙公网安备 33010602011771号