并发编程风格;通道:无缓冲通道,管道,单向通道,缓冲通道,并发请求镜像资源,goroutine泄露;select多路复用:非阻塞模式,通道的零值;示例并发目录遍历:递归遍历目录,计算大小,汇报进度,提高并发效率,限制并发;取消(广播):发送广播,响应取消
分类:
其他好文 时间:
2019-05-11 21:22:07
阅读次数:
131
一 :并发基础 1 并发和并行 2 goroutine 未完待续 。。。。。。。 二:并发范式 三:context标准库 四:并发模型 ...
分类:
编程语言 时间:
2019-05-03 22:54:12
阅读次数:
160
小结: 1、内存优化1.一个消息一定只有一块内存使用 Job 聚合消息,Comet 指针引用。 2.一个用户的内存尽量放到栈上内存创建在对应的用户 Goroutine(Go 程)中。 3.内存由自己控制主要是针对 Comet 模块所做的优化,可以查看模块中各个分配内存的地方,使用内存池。 2、模块优 ...
分类:
其他好文 时间:
2019-05-02 11:33:12
阅读次数:
113
通过Goroutine实现UDP消息并发处理 ...
分类:
其他好文 时间:
2019-05-01 18:51:33
阅读次数:
233
Channel概念 Channel 是Go中的一个核心类型,你可以把它看成一个管道。Channel是引用类型,操作符是箭头 <- 。 Channel 是 CSP 模式的具体实现,用于多个 goroutine 通讯。其内部实现了同步,确保并发安全。 Channel 是线程安全的,先进先出,多个goro ...
分类:
编程语言 时间:
2019-04-22 23:03:44
阅读次数:
261
goroutine的意义与实现 goroutine存在的意义 goroutine 是用于实现GO的并发的,而不是并行。此处的并发指的是一套管理、调度、执行goroutine的过程。 并行的性能更高,可以同时执行多个进程。但是在性能没那么高的服务器上,并发更会被推荐,并发的实现可能效果会优于并行,因为 ...
分类:
其他好文 时间:
2019-04-21 14:36:38
阅读次数:
152
packagemainimport("fmt""os/exec")funcmain(){var(cmd*exec.Cmderrerror)cmd=exec.Command("/bin/bash","-c","echo1")err=cmd.Run()fmt.Println(err)}packagemainimport("fmt""os/exec")funcmain(){var(cmd*exec.Cm
分类:
其他好文 时间:
2019-04-19 17:49:24
阅读次数:
163
Go语言 异常panic和恢复recover用法 背景:Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个异常。在Go语言 ...
分类:
编程语言 时间:
2019-04-19 11:42:48
阅读次数:
159
1.code example 公共方法 2. 错误示范 打印发现i每次地址都是同一个 协助每次先阻塞4秒 4秒后 i的值是4, 这是协程中的方法testDomain开始工作,将i的值传给自己的形参 3. 正确示范 这种操作会先将i的值传递给形参a,i的变化不会对testDomain方法的执行产生影响 ...
分类:
其他好文 时间:
2019-03-08 16:56:28
阅读次数:
188
没有使用goroutine 之前 使用goroutine 之后 总结:适用于高并发的场景 ...
分类:
其他好文 时间:
2019-02-26 11:55:05
阅读次数:
150