【发布时间】:2009-11-17 01:05:45
【问题描述】:
我正在运行 Linux,我希望能够对共享库 (.so) 进行并行函数调用,不幸的是它不是线程安全的(我猜它具有全局数据结构)。
出于性能原因,我不想简单地将函数调用包装在互斥体中。
我想做的是产生 4 个线程,并将同一个库的 4 个副本加载到进程内存中。然后每个线程将函数调用到它自己的库副本中。
不幸的是,dlopen 不允许我加载任何库的多个实例。
有谁知道可以让我多次加载库的方法吗? (除了制作 .so 文件的 4 个副本,每个副本都有不同的名称)
【问题讨论】:
-
对于需要示例的,实现了比较here。
标签: c++ c linux thread-safety shared-libraries