![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
张启明
目前学生一枚
展开
-
IPC LPC RPC
IPC (进程间通信) 泛指一切两个或以上线程通过共享内存、消息队列、通道和信号量进行的通信机制。LPC(本地进程通信) 指多个线程在单独一台计算机中,通过共享内存、消息队列、通道和信号量进行的通信机制。RPC (远程过程调用) 指客户端专注于数据展示与交互,服务端专注于数据存储、处理和分发等,通过客户端远程调用服务端的方法和数据,并不关心内部逻辑,并回去返回对象的通讯机制,指多个客户端与服务端通过远程传递信息的方式进行通信。...原创 2020-05-25 22:51:39 · 265 阅读 · 0 评论 -
Go嵌入接口类型
以下代码中,构建简单的ipc进程间通讯模型,ipcServer中嵌入Server接口,则在实例化时需要指定一个实现其嵌入接口的实现类。若嵌入接口中的方法与ipcServer中的方法不同,则自动升级至ipcServer类型中,通过ipcServer.funcName()即可引用,详情请看:https://blog.csdn.net/weixin_34268310/article/details/92645136package ipcimport ( "encoding/json" "fmt"原创 2020-05-18 23:36:55 · 363 阅读 · 0 评论 -
Go多核并行化
通过goroutine创建相同逻辑CPU核心个数的协程,将求和列表分段,分别计算后汇总。通过runtime.NUMCPU()获得逻辑CPU个数,并计算每个协程中计算列表的下标,计算完成后,向channel中写入1。通过向channel中读取int的个数,判断协程运行是否全部完成,之后求和即可。package mainimport ( "fmt" "runtime")type Vector []float64func (v Vector) DoSome(p, i, n int, u Vec原创 2020-05-18 00:47:10 · 444 阅读 · 0 评论 -
Go:defer
Go:deferpackage mainimport "fmt"func main() { fmt.Println(sum(1,2)) x := 1 y := 2 defer calc("AA", x, calc("A", x, y)) x = 10 defer calc("BB", x, calc("B", x, y)) y = 20}func calc(index...原创 2020-04-23 23:49:20 · 116 阅读 · 0 评论