golang

xloogson · · 5204 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

上次去ECUG听了一次讲座,了解到这世界上还有一门go语言。最近抽时间学了一下,很优秀的一门语言。

公司有一个框架,是用c++实现了协程的调度。用它实现“服务节点”非常方便。今天终于把框架里面节点之间是如何

通信的部分搞懂了。调度的部分还不是特别清楚,正好go实现了调度这部分的功能。所以,计划用go实现一个通用的框架,

来更快速的开发服务。

先把基本思路写在这里。

go中的协程是用chan(管道)通信的,所以可以借鉴actor模式。

1:每个协程有一个GID,用户可以找到这个协议。

2:每个协程包含一个chan,其它协程可以通过GID向他发消息,chan里面存放的是消息。

3:消息包括,消息发送者,消息接受者,消息数据。

4: 需要有2个映射。

         GID--->协程  

         peer--->GID  peer指的是,和服务建立的每一个连接。

5:控制消息。(控制协程的退出,错误消息,等等)

6:消息的方式还是采用消息工厂,这是我很喜欢的一种模式。用消息工厂,反射的去生成消息。

7:如果协议中没有诸如发送者,接受者之类的信息,还是得提供transltor的形式。

目标是实现这一一种方式,对于s/c模型,用户只用实现若干个,Prosscor(Message*)函数。其它部分用脚本自动生成代码。

=================================

采取边学习,边写的方法

目前碰到的问题,以及要完成的任务

1:如何将类型装换成类型名字。如何通过类型名字new一个对象

2:xcode协议格式。

3:go中实现继承有哪几种方式。Message需要继承。


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:xloogson

查看原文:golang

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

5204 次点击  ∙  2 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传