- 所有已知实现类:
Context,MiniContext
public interface IContext
异步任务的上下文
在异步和并发编程中,共享上下文是很必要的,且显式的共享优于隐式的共享。
共享上下文可实现的功能:
1.传递取消信号
2.传递超时信息
3.共享数据(K-V结果)
上下文扩展
由于这里的上下文和任务之间是组合关系,因此用户既可以通过实现更具体的上下文类型扩展,也可以仅通过扩展黑板实现。 对于简单的情况:可通过实现更具体的Context类型解决。 对于复杂的情况:建议通过黑板实现。关于上下文的设计,也可阅读我在行为树中的设计BTree。
- 作者:
- wjybxx date - 2023/11/18
-
字段概要
字段 -
方法概要
修饰符和类型方法说明任务运行时依赖的黑板(主要上下文) 1.每个任务可有独立的黑板(数据); 2.一般而言,黑板需要实现递归向上查找。任务绑定的取消令牌(取消上下文) 1.每个任务可有独立的取消信号 -- 私有属性。共享属性(配置上下文) 1.用于支持【数据和行为分离】的Task体系。state()任务绑定的状态 1.任务之间通常不共享 -- 私有属性。
-
字段详细资料
-
NONE
空上下文 1. 建议使用空上下文代替null 2. 可以通过该对象创建子上下文
-
-
方法详细资料
-
state
Object state()任务绑定的状态 1.任务之间通常不共享 -- 私有属性。 2.运行时可能为null。 -
cancelToken
任务绑定的取消令牌(取消上下文) 1.每个任务可有独立的取消信号 -- 私有属性。 2.运行时不为null - 可返回ICancelToken.NONE。 -
blackboard
Object blackboard()任务运行时依赖的黑板(主要上下文) 1.每个任务可有独立的黑板(数据); 2.一般而言,黑板需要实现递归向上查找。这里未直接实现为类似Map的读写接口,是故意的。 因为提供类似Map的读写接口,会导致创建Context的开销变大,而在许多情况下是不必要的。 将黑板设定为Object类型,既可以增加灵活性,也可以减少一般情况下的开销。
-