Harry's Blog
博客
分类
标签
归档
友链
关于
博客
分类
标签
归档
友链
关于
Harry 的个人空间
博客
分类
标签
归档
关于
Go 语言 Channel 最佳实践
简介 Channel 基本概念介绍 基本使用方法参见 Go指南 Go 语言中的通道(channel)是一种特殊的类型。通道像一个传送带或者队列,总是遵循先入先出(First In First Out)的规则,保证收发数据的顺序。每一个通道都是一个具体类型的导管,也就是声明channel的时候需要为其指定元素类型。 不带缓冲的通道创建不带缓冲的通道语法如下 ch := make(chan i...
2023-05-14
Golang
Golang
阅读全文
Go 语言中的值方法和指针方法
概念函数和方法在 Go 语言中,我们可以为自定义类型定义方法。方法是一个与特定类型关联的函数。方法可以被定义在值类型上或指针类型上。这两种方法分别称为值方法和指针方法。 // 函数 func Hello() { fmt.Println("Hello World!") } type Welcome struct{} // ...
2023-05-14
Golang
Golang
阅读全文
Go 协程调度原理及应用
什么是协程?进程和线程一个应用程序时运行在操作系统上的一个进程。进程是一个运行在自己独立内存空间的独立执行体,是操作系统进行资源分配的最小单位。一个进程则有一个或多个线程组成,这些线程是共享进程内存地址空间的执行体,是操作系统进行任务调度的最小单位。而使用多线程进行工作时,由于共享父进程的内存空间等资源,访问同一个数据需要对其进行加锁,保证同一时间只有一个线程操作一个数据。这样不仅会提高编码...
2023-03-25
Golang
Golang
阅读全文
Go 实战: 基于Thrift框架的 RPC 服务 Demo
Thrift架构简介Thrift自顶向下可分为四层 Server(single-threaded, event-driven)服务器进程调度 Processor(compiler generated)RPC接口处理函数分发,IDL定义接口的实现将挂接到这里面 Protocol (JSON, compact etc)协议,定义数据传输格式 TBinaryProtocol(二进制格式) ...
2023-03-25
Golang
Golang
阅读全文
Go 实战: Socket 编程
Socket如何通信在网络中要唯一确定一个进程需要用一个三元组(Protocol,IP,Port),IP地址唯一确定一台主机,再通过协议和端口唯一确定一个进程,这里也可以看到TCP和UDP可以绑定同一个端口。能唯一确定网络中的进程了,便可以利用这个标志在他们之间进行数据交互。 Socket基础TCP/IPGo支持的IP类型 IPv4 IPv6 Go支持的协议类型 TCP UD...
2023-03-25
Golang
Golang
阅读全文