测试

golang chan的用法

实验目的 chan相关前置知识点,请参考本文底部链接。墙裂推荐阅读。 假设系统内除了主线程之外,有四个线程connector,sender,receiver,heartbeat connector,负责建立网络连接,在连接断开的时候进行重连 sender,负责发送数据报 receiver,负责接收数据报 heartbeat,负责监控心跳 如何启动connector connector需要等待ConnectorNotifier,值为1连接,值为2重连 建立连接之后,发送三次ConnectorConnected,通知sender, sender,receiver可以开工 var ConnectorConnected chan int = make(chan int, 3) // 已连接通知 func connector(){ ..... // 成功之后发送三次通告 ConnectorConnectedNotifier <- 1 ConnectorConnectedNotifier <- 1 ConnectorConnectedNotifier <- 1 } 如何启动sender, receiver,以及heartbeat 等待ConnectorConnectedNotifier,收到...

go语言数组内存是怎么扩容的

话不多说,上测试代码和结果 package main import ( "fmt" ) func main() { var orderIds []int fmt.Println(len(orderIds), cap(orderIds)) fmt.Println("已使用", "\t\t", "容量", "\t\t", "增量") var lastCap = cap(orderIds) for i := 0; i < 100000; i++ { orderIds = append(orderIds, 1) if cap(orderIds) != lastCap{ fmt.Println(len(orderIds), "\t\t", cap(orderIds), "\t\t", cap(orderIds)-lastCap) lastCap = cap(orderIds) } } } 输出 0 0 已使用 容量 增量 1 2 2 3 4 2 5 8 4 9 16 8 ...

golang数组用法

package main import ( "fmt" ) var ( duration int = 2 ) func main() { fmt.Println("test case 1:") strs := make([]string, 10) strs = append(strs, "1") strs = append(strs, "2") strs = append(strs, "3") for _, val := range strs{ fmt.Println(val) } fmt.Println("test case 2:") var strs2 []string strs2 = append(strs2, "1") strs2 = append(strs2, "2") strs2 = append(strs2, "3") for _, val2 := range strs2{ fmt.Println(val2) } } 输出 test case 1: 1 2 3 test case 2: 1 2 3
执行时间: 35.190105438232 毫秒