Я запускаю Linux, и я хотел бы иметь возможность делать параллельные вызовы функций в общую библиотеку (.so), которая, к сожалению, не является потоковой (я предполагаю, что она имеет глобальные структуры данных).
По соображениям производительности я не хочу просто переносить вызовы функций в мьютекс.
Я хотел бы сделать это, чтобы создать, сказать 4 потока, а также загрузить 4 копии одной и той же библиотеки в память процесса. Каждый поток затем вызывает вызовы функций в свою собственную копию библиотеки.
К сожалению, dlopen не позволяет загружать больше одного экземпляра любой библиотеки.
Кто-нибудь знает какой-либо метод, который позволит мне загружать библиотеку более одного раза? (Помимо создания 4-х копий файла .so, каждое из которых имеет другое имя)