我目前有一个Matlab应用程序,它接收来自另一个外部应用程序(用JAVA编码)的请求。
Java应用程序使用Yair Atlman的'Undocumented Matlab'中描述的系统通知matlab。我们可以通知Matlab各种动作,将它们命名为A和B,这会触发不同的回调。
问题如下:在某些情况下,java应用程序可能会在处理第一个通知之前发送新通知。在一个理想的世界里,这就是我想要发生的事情:
以下是发生的事情:
我尝试了几种可能的解决方案,但都失败了,我终于找到了一个奇怪的解决方法,但这个解决方法带来了问题,我必须摆脱它。我无法访问并行计算。 我的尝试涉及将接收的动作存储在静态队列中并锁定回调执行,但它最终会以无限循环结束,因为A永远不会被清除。
由于B实际上可能需要A生成的数据,因此完美的解决方案实际上是Java在收到来自Matlab的“完整”通知之前保留B通知。我也尝试在这里使用并行性,但Matlab暂停了它的执行,java从未收到通知并永远睡不着......
此时我愿意接受任何解决方法,因为我对完整的解决方案完全无能为力。
由于
PS:必须同时使用matlab 2011b和2014b