goroute之间通信-共享全局变量(理解go的多并发)
1、go语言中goroute之间通信有两种方式:
- 通过全局变量,这种方式得加锁
- 通过channel进行通信
下面是一个通过全局变量进行通信的例子:
| |
输出结果如下:
……记录个人学习空间
下面是一个通过全局变量进行通信的例子:
| |
输出结果如下:
……1、日志对外接口:
本例中定义一个日志写入的接口(LogerWriter),要求写入设备必须遵守这个接口协议(实现这个接口)才能被日志器(Logger)注册。日志器有ResgisterWriter()和Log()两个方法,ResgisterWriter()方法将日志写入器(LogWriter)注册到日志器中,log()方法进行日志的输出,这个函数会将日志写入到所有已经注册的日志写入器(LogWriter)中。本例中简单实现文件和输出到终端这两种方式。
……实现通用链表
| |
| |
go语言的接口设计是非侵入式的,接口的编写者无需知道接口被那些类型实现。而接口实现者只需要知道实现的是什么样子的接口,但无须指明实现哪一个接口。不像其他语言需要用implement来指出实现了哪个接口。有几个需要注意的地方:
一种的事物的多种形态,都可以按照统一的接口进行操作。
理解:比如go语言sort包中提供了一个排序的Sort接口,它可以对整数,浮点数,字符串等进行排序,只要实现接口中定义的下面三个方法,就可以调用Sort方法进行排序,不用每一种类型都去定义一种实现的方法。
我们从go网站上面可以查到Sort方法是这样:func Sort(data Interface)
| |
学会不低头,过去已经属于过去,把握当前,未来可期!
……