Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дважды загрузить DLL, JNI 
V
    Опции темы
val
  Дата 19.2.2007, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: нет
Всего: 7



Привет!

Есть необходимость загрузить несколько экземляров одной и той же dll-библиотеки, так как в ней имеются статический структуры, к которым возможен конфликт по доступу. Синхронизировать вызовы нативных методов не хочу, так как будет потеря производительности. Гружу библиотеку таким вот образом:
Код

try {
     System.load (DLL_PATH);
} catch (Throwable e) {            
     System.err.println(
    "Error loading native library '" + 
                 DLL_PATH + "'");
    e.printStackTrace();
}



--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
hamsterKSU
Дата 20.2.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 1
Всего: 11



сделай на уровни С++ кода блокировки, используй симофоры и т.п
PM MAIL ICQ   Вверх
val
Дата 22.2.2007, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Program developer
**


Профиль
Группа: Участник Клуба
Сообщений: 992
Регистрация: 14.1.2003
Где: г. Киев

Репутация: нет
Всего: 7



Перепробовал кучу вариантов, результат таков - одну и туже библиотеку загрузить невозможно даже на уровне С++. Побовал так. Загрузил библиотеку a.dll, скопировал  её, переименовал в b.dll,  загрузил b.dll. В результате так или иначе в памяти только один экземпляр библиотеки, а именно a.dll. Вот так. Поблему решил переработкой самом библиотеки путём избавления от глобальгых переменных.

Добавлено @ 11:33 
Это всё в рамках одного процесса, конечно.


--------------------
Терпимость - величайшее благо человечества...
Ярчайший признак интеллекта – постоянно хорошее настроение…
PM MAIL ICQ   Вверх
Metal_Heart
Дата 22.2.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



Цитата(val @  22.2.2007,  11:32 Найти цитируемый пост)
Поблему решил переработкой самом библиотеки путём избавления от глобальгых переменных.


Что не делается, всё к лучшему?  smile 


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
AntonSaburov
Дата 22.2.2007, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Цитата(val @  22.2.2007,  11:32 Найти цитируемый пост)
одну и туже библиотеку загрузить невозможно даже на уровне С++. 

Это невозможно на уровне операционной системы сделать - это по-моему много где упоминалось.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0704 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.