如何在 KDB 中进行实时和并发编程?

How do I program realtime & concurrency in KDB?

我正在尝试在 KDB 中编写软实时程序。我已经设置好一切,唯一的问题是设置事件循环。

在 Python 中,我会做类似的事情:

while True:
  do something

如果它是非阻塞的(或分配给 CPU 核心)就更好了,这样我就可以同时 运行 几个。

我应该如何在 KDB 中考虑这个问题?

PS 我找不到涉及此内容的文档,但如果它们存在,请对它们进行 link。

一般来说,在 kdb 中使用 while 循环并不常见,也不是最佳实践,尽管功能是存在的。

您通常会创建 kdb 实例:

一个。 event-driven(主要逻辑进入 .z.pg/.z.ps/.z.po/.z.pc 以便 kdb 对 sync/async 事件和 connection/disconnection事件)或

乙。 timer-driven(主要逻辑进入.z.ts),或者

C。以上的组合。

这将是一个“non-blocking”设置,而不是像您正确指出的那样会阻塞的 while 循环。

我认为 Terry 关于为什么不使用 while 循环的解释很好地总结了这个主题。

对于并发,有几个选项: