-
Notifications
You must be signed in to change notification settings - Fork 22
Actor实例
Henry edited this page Oct 12, 2019
·
1 revision
当希望实例所有方法都线程一致性执行的时候,可以在组件创建接口服务的时候指定对应的Actor
的名称;每个不同名称的Actor
都会在自己的独立线程中有序地执行相关方法,Actor
的所有方法都是线程安全的。
客户端只需要在创接口代理的时候指定Actor
名称即可,服务端会维护一致性;所以不同客户端同时创建同一名称的Actor
也是不会出现冲突的情况。
IAmountService henry = client.Create<IAmountService>("henry");
IAmountService ken = client.Create<IAmountService>("ken");
以上代码针对IAmountService
接口创建了两个Actor
,它们之间都是隔离相互不影响,下面看一下接口的行为
public interface IAmountService
{
Task<long> Income(long amount);
Task<long> Payout(long amount);
Task<long> Get();
}
接口是一个简单的帐户操作,基于Actor
模式下,所有客户端针对同一Actor
的所有操作都是线程安全的。