问题描述
Python 有它的 GIL 并且永远是单线程的。另一方面,没有明确的理由说明为什么单个 JVM 实例不能将 Gateway 责任移交给 N 个线程中的每一个——每个线程都处理单独的套接字通信一个单独的 python 进程。 py4j 真的可以做到吗?
解决方法
Java 端的单个 GatewayServer 实例可以处理 N 个 python 进程。
服务器线程接受线程上的连接,然后为每个新连接/python 进程生成一个新线程。
您可以阅读有关 threading model used in Py4J here 的更多信息。