vla*_*ean 5 sap abap synchronization shared-memory
我想创建一个简单的Tic Tac Toe游戏,在SAP系统的用户之间进行游戏.
我有一个带有SIGNUP方法的CL_TTT_MANAGER类,可以为玩家分配游戏.我的类是一个支持共享内存的类,因为它的目的是可能被sap系统的所有用户访问.
注册过程使用非常简单的算法完成.
1:存在"WAITING_FOR_PLAYERS"标志,并设置为ABAP_FALSE.原来.2:当第一个玩家调用"SIGNUP"时,该标志设置为"ABAP_TRUE".3:当第二个玩家调用"SIGNUP"时,该标志设置为"ABAP_FALSE"并创建游戏实例.
我的SIGNUP方法的问题在于它依赖于状态,即它必须记住第一个玩家的名字,这是使用私有属性实现的.
对于任何处理过并发问题的人,你会发现数据竞争,即如果第二个玩家注册后,第三个玩家也注册,第一个玩家的名字可能被替换为第三.
如何在abap中同步这些东西?我有什么机制呢?我在文档中没有遇到过这样的事情(我已经研究了2个月).我是否必须自己实施,或者有什么可以帮助我吗?