我的 Web 应用程序位于 Python 框架中。我已经编写了一个 C 函数来进行复杂的计算。我想将 Python 处理程序收到的查询作为参数传递给我的 C 函数,并以 HTML 形式呈现结果。
这不仅仅是从 Python 调用 C 函数,还有来自 Python 的许多并行请求,并且所有“C 线程”都应该共享一个公共(public)资源。
如果我使用 Java,我会使用套接字和 Java 多线程来处理来自 Python 处理程序的并发请求,而不是 C。
我怎样才能在C中做类似的事情?是否有Python到C的多线程库和套接字库?标准的做法是什么
最佳答案
Python是用C写的,有很完整的C-API您可以使用它来编写自己的 Python/C 函数。不幸的是,由于 GIL(全局解释器锁),Python 永远不会有轻量级多线程接口(interface),但只要您小心返回的内容,C-API 中就没有这些限制。
如果这没有吸引力,常见的替代方案包括 cython或ctypes .
Cython is a language that makes writing C extensions for the Python language as easy as Python itself.
同时
ctypes is a foreign function library for Python. It provides C compatible data types, and allows calling functions in DLLs or shared libraries. It can be used to wrap these libraries in pure Python.
关于python - 如何将并发查询从 Python 处理程序输入到 C 函数并将输出重定向回 Python?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15109531/