Запуск не реентерабельного кода в нескольких потоках

0

Я унаследовал большую часть кода c++ в общем объекте linux, который, как я подозреваю, не является повторным.

Есть ли способ запустить этот код в нескольких потоках, порожденных из одного процесса, за счет того, что каждый поток загружает свою собственную копию DLL и сохраняет свое собственное пространство памяти?

Теги:
thread-safety

1 ответ

0

Конечно нет. В потоках используется одинаковое пространство памяти. Процессы имеют отдельные пространства памяти. Таким образом, вам нужно будет запускать несколько отдельных процессов, если ваш код не будет повторно включен.

  • 0
    Спасибо за разъяснение. Так я могу порождать несколько процессов и загружать свою DLL отдельно? Этот вопрос, похоже, решает эту проблему ( stackoverflow.com/questions/13080093/… )
  • 0
    DLL обычно использует адресное пространство вызывающего потока / процесса и разделяет только код. Если в коде нет повторного ввода, вам необходимо исправить код или запустить отдельные процессы и, возможно, исправить код для использования разделяемой памяти с некоторым типом синхронизации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню