20 Star 38 Fork 19

hamasm/cpp actor framework

Create your Gitee Account
Explore and code with more than 13.5 million developers,Free private repositories !:)
Sign up
This repository doesn't specify license. Please pay attention to the specific project description and its upstream code dependency when using it.
Clone or Download
contribute
Sync branch
hamasm no message 5394b3c 7 years ago
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
8 years ago
9 years ago
7 years ago
Loading...
README
C++版本已停止维护,请转到C#版本https://gitee.com/hamasm/CsGo

并发逻辑控制框架,适用于复杂业务逻辑;
支持系统 windows、x86_x64/armv7_v8-linux、armv7_v8-android;
支持编译器 VC2013/VC2015,GCC4.8+;
依赖于boost 1.5x;
可以用来构建服务端/客户端,也可以用在与网络无关的程序中;
基于stackful/stackless协程技术,actor基于stackful,generator基于stackless;
actor/generator均可以类似普通函数一样调用别的actor/generator函数及传递参数;
actor运行时按需扩张栈空间(4K-1M),64位下4G内存最多可创建一千万以上generator对象;
actor/generator之间多种0-copy消息通信方式;
1:n的方式划分串行调度队列,在不使用消息时也可有效规避多个actor/generator逻辑之间的线程安全问题;
三级调度,主流x86处理器单线程下actor调度一千万以上,generator两千万以上;
优化过的高效定时器,定时器资源非常轻量;
基于asio优化过的tcp/udp异步IO;
支持QT-UI线程调度驱动,极大简化UI与后台逻辑之间的交互;
私有项目,不提供开发文档,有兴趣请联系 591170887@qq.com;
可以任意使用或编辑源码,而不需通知作者,当然作者也不对使用本框架造成的任何损失负责.

svn url(版本保持最新):
svn://ham2015.6655.la:1000/MyActor
Node.js版本(支持web前端js)
svn://ham2015.6655.la:1000/MyActorNodeJs

github url:
https://github.com/HAM-2015/CPP-Actor-framework

oschina url:
http://git.oschina.net/hamasm/cpp-actor-framework

ftp url:
ftp://ham2015.6655.la/files/MyActor/

2017-01-17
优化asio异步IO,在linux下tcp/udp更加高效;

2016-09-20
添加generator下的channel通信机制(无缓存/有限缓存/无限缓存),支持select-case方式读取多个channel;
添加generator下的逻辑mutex互斥.

2016-09-08
添加基于stackless的generator,支持co_yield、co_async、co_await、co_call语义.

2016-08-18
添加Node.Js与C++扩展模块之间Actor交互(测试Node.Js版本6.2.2).

2016-08-09
添加可以在Node.Js C++扩展动态库uv线程内运行Actor(测试Node.Js版本6.2.2).

2016-03-26
移植到arm-android(Linux-Kernel-3.4.0+)平台(包括 QT For Android 异步UI驱动).

2016-03-15
移植到arm-linux平台.

2015-12-28
添加linux平台下的自动栈空间伸缩管理.

2015-12-25
添加windows平台下的自动栈空间伸缩管理.

2015-12-18
添加对mingw的支持.

2015-12-09
优化windows,linux平台下的定时器性能.

2015-11-13
修改windows下使用Fiber驱动上下文切换.

2015-11-11
添加在QT-UI线程中运行Actor,驱动异步UI.

2015-11-05
添加"通知句柄"丢失检测,消息等待时可以捕获通知句柄丢失异常.

2015-10-31
移植到linux系统.

2015-09-24
改进采用TLS技术检测当前代码运行在哪个Actor下.

2015-09-21
使Actor在lock_quit()后检测到quit_msg消息仍然可以运行.

2015-08-23
让一个Actor内可以同时支持多个相同类型消息.

2015-08-02
添加在一个Actor内互斥运行多个业务逻辑段.

2015-07-30
支持任意参数个数消息.

2015-07-12
优化右值转移,使消息传递支持0拷贝.
添加值引用消息.

2015-07-10
二级调度器shared_strand添加next_tick功能,提高消息传递性能.

2015-06-26
优化Actor的内部定时器.

2015-06-12
添加同步消息(sync_msg)和CSP模型消息(csp_channel).

2015-06-09
去掉“actor_mutex”、“actor_shared_mutex”不必要的 close 功能.

2015-06-06
添加直接产生上下文的回调函数,可以不用显示使用await操作等待回调完成.

2015-06-03
优化检测堆栈溢出功能,输出具体哪个Actor溢出日志.

2015-06-01
优化等待子Actor结束的性能,取消等待返回bool值.

2015-05-29
添加actor_shared_mutex,用于业务逻辑之间的同步.

2015-05-24
添加在DEBUG下创建Actor时保存调用堆栈,方便某个Actor异常时调试跟踪.

2015-05-15
添加可以检测当前代码运行在哪个Actor下.

2015-04-14
核心功能整体优化;
添加actor_mutex;
添加可以暂时锁定Actor,不让其强制退出,用于关键逻辑段;
添加多级消息代理.

2015-04-02
添加可以直接拿一个Actor句柄发送消息,然后通过匹配弹出消息.

2015-03-19
添加消息传递的右值优化.

2015-02-11
添加定时清理Actor栈池.

2015-02-05
增加外部可以直接拿另一个Actor句柄创建一个消息管道或通知句柄.

2015-02-01
添加socket测试示例.

2015-01-26
修改了定时器在高版本VS下因与STL库冲突导致的编译错误问题;
增加异步触发和消息等待的超时处理功能.

2015-01-08
修改了挂起/恢复控制逻辑,原有逻辑在极端情况下存在安全风险.

Empty file

About

并发逻辑控制框架(Actor Model),适用于复杂业务逻辑. expand collapse
Cancel

Releases

No release

Contributors (2)

All

Language(Optional)

Activities

接近7年前推送了新的提交到 master 分支,578ba26...5394b3c
8年前推送了新的提交到 master 分支,50b3de9...578ba26
8年前推送了新的提交到 master 分支,a6aeb39...50b3de9
8年前推送了新的提交到 master 分支,0f53453...a6aeb39
8年前推送了新的提交到 master 分支,cc1d64e...0f53453
Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/hamasm/cpp-actor-framework.git
git@gitee.com:hamasm/cpp-actor-framework.git
hamasm
cpp-actor-framework
cpp actor framework
master

Search