发表于:2014/7/31 15:50:31
#0楼
框架代码
http://pan.baidu.com/s/1o6uPJNc
依赖boost库
http://pan.baidu.com/s/1bn8dwcB
从事自动化控制将近一年,构建了一个基于“协程(coroutine)”版本的自动化控制框架,Beta版,依赖boost_1.55版本
封装原基于异步状态机控制逻辑,转换成易于理解的流程化控制,并且消除多线程版本中烦人的同步问题,如果性能允许,
所有轻量级逻辑(包括并行逻辑)可以在一个线程中执行(亦可多线程);
支持外部启动、强制结束、暂停、恢复,支持创建子协程任务(并发控制);
除非必要,否则协程内部禁止使用会导致线程阻塞的操作,否则极大降低吞吐量;
默认协程栈空间64k字节,远比线程栈小,注意局部变量占用的空间以及调用层次(注意递归),否则容易造成不可预知的错误;
一个协程依赖一个shared_strand,多个协程可以共同依赖同一个shared_strand
http://pan.baidu.com/s/1o6uPJNc
依赖boost库
http://pan.baidu.com/s/1bn8dwcB
从事自动化控制将近一年,构建了一个基于“协程(coroutine)”版本的自动化控制框架,Beta版,依赖boost_1.55版本
封装原基于异步状态机控制逻辑,转换成易于理解的流程化控制,并且消除多线程版本中烦人的同步问题,如果性能允许,
所有轻量级逻辑(包括并行逻辑)可以在一个线程中执行(亦可多线程);
支持外部启动、强制结束、暂停、恢复,支持创建子协程任务(并发控制);
除非必要,否则协程内部禁止使用会导致线程阻塞的操作,否则极大降低吞吐量;
默认协程栈空间64k字节,远比线程栈小,注意局部变量占用的空间以及调用层次(注意递归),否则容易造成不可预知的错误;
一个协程依赖一个shared_strand,多个协程可以共同依赖同一个shared_strand
[此贴子已经被作者于2014/8/1 16:18:22编辑过]