Аргумент более сложен, чем это (читайте статья "Is Weak Typing Strong Enough" Yegge для интересного обзора).
Динамические языки не обязательно испытывают недостаток в проверке ошибок любой - вывод типа C# является возможно одним примером. Таким же образом C и C++ имеют ужасные проверки компиляции, и они со статическим контролем типов.
основными преимуществами динамических языков является a) возможность (который должен не обязательно использоваться все время), и закон b) Boyd Повторения .
последняя причина значительна.
Вместо использования потоков вы можете использовать несколько процессов, каждый из которых выполняет определенную работу. Это очень часто встречается в * nix, и его обычно проще кодировать.
Похоже, плохая идея. Это невозможно с разделяемыми библиотеками, как это было бы со статическими.
Вы, вероятно, могли бы использовать dlopen () с флагом RTLD_LOCAL, чтобы последующие вызовы dlopen не видели, что он уже загружен, и заставляли его работать так, как вы хотите. .. но это все равно выглядит плохой дизайнерской идеей. Если у вас есть проблемы с производительностью, лучше не загромождать память несколькими копиями одной и той же библиотеки.
Я бы посоветовал использовать несколько процессов или использовать мьютекс, это, вероятно, более эффективно.
По мере того, как вы работаете в Linux, также могут существовать другие подходы, если вы можете получить доступ к исходному коду библиотеки, например, переименование его символов, чтобы иметь столько отдельных экземпляров, сколько необходимо ... Ну,
Вы можете загрузить несколько независимых копий библиотеки следующим образом:
#define _GNU_SOURCE
#include <dlfcn.h>
...
void *handle = dlmopen(LM_ID_NEWLM, "/path/to/library.so", RTLD_NOW);
Подробнее здесь .
Что это за библиотека? Это что-то большое? Мне интересно, не могли ли вы каким-либо образом исправить библиотеку, чтобы она была потокобезопасной, а затем создайте свой код, используя поточно-безопасную версию библиотеки. Это зависит от размера библиотеки и от того, что с ней не так, но если бы вы могли исправить библиотеку, вы бы смогли построить свое приложение так, как хотите, а также помочь всем остальным.