我负责设计一个小型守护进程(在Debian Linux上),它将使用blackbox libfoo.so与外部EFT终端进行通信。有几个相同的EFT终端(大约100个),一个libfoo.so实例只能与一个终端通信。有一个初始化调用,它将实例绑定到终端。如何独立加载共享对象多次
我们主要在我们公司使用Java,但这可能需要C++实现。编程语言尚未定义。因为我们需要处理与多个终端(大约10个并发线程)的并发通信,所以我们需要加载libfoo.so的几个实例。我正在寻找设计原则如何解决这样的要求(dlopen只会加载一次SO,对于JNI来说也是一样)。我是否需要产生子进程?复制/粘贴SO并将其称为libfoo_1.so,libfoo_2.so等(aargh!)是否还有其他解决方案?
感谢
西蒙
当你说“黑匣子”,你的意思是共享对象没有任何API? – SirDarius
对不起,使用“黑匣子”时不准确。 SO确实有一个API,但是,我们没有源代码,并且不能影响API。 – Simon