powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / fbclient, thread-safe и LoadLibrary
15 сообщений из 15, страница 1 из 1
fbclient, thread-safe и LoadLibrary
    #38948630
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Работаем над мулти-потоковом проэкте.
В каждом потоке отдельный конекшин и транзакции.

Вопрос, тоже нужно отдельно загрузить и клиент либу и соотвественно отдельные поинты Fisc_attach_database := GetProcAddr('isc_attach_database'); для каждого потока, или одну загрузку хватит для всех?
Или LoadLibrary пох сколько раз вызывать, будет тот же инстанс? Does LoadLibrary create distinct instances?

В IBX похоже одна загрузка, немного посмотрел исходники.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948642
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin MarcociИли LoadLibrary пох сколько раз вызывать, будет тот же инстанс?
LoadLibrary первый раз загружает, второй и следующие разы увеличивает счетчик использования.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948650
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin Marcoci,

dll в процесс грузится один раз.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948663
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кdv, Цadman, спасибо.

Ок, грузится, получаем хэндл к либу, и будем иметь общие прок адрессы всех isc_* для всех потоков.
Будет это работать реально паралельно если будет вызван isc_attach_database из разных потоков, и дальше запросы с общими прок адрессы? Как бы fbclient сам будет распаралелить выполнение isc_dsql_execute если разные аттачи?

Сорри, может глупые вопросы.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948674
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin MarcociБудет это работать реально паралельно если будет вызван isc_attach_database из разных потоков
Да.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948675
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Thanks, Wadman!
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948707
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin Marcoci Как бы fbclient сам будет распаралелить выполнение isc_dsql_execute если разные аттачи?
fbclient ничего не будет распараллеливать, но выполнение операций в коннектах в разных потоках вполне допустимо, и весьма давно.
А библиотека 2.5 содержит специальные штуки для блокировки обращений внутри одного коннекта из разных тредов. Т.е. наоборот, в этом случае препятствует попыткам "распараллеливания" :-)
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948789
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понял, я чет заблуждался что dll data segment один для всех потоков, так как dll один на весь процесс где потоки крутится.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948799
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin Marcociя чет заблуждался что dll data segment один для всех потоков
Не заблуждался. Он действительно один. Но при чём тут это?

PS: Тяжело будет на таком проекте, когда о многопоточности знаешь только название...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948812
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, пока полет нормальный :)
Если успокоили что один поток-коннект все ок с одни и те же прок адреса то все будет ок.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948833
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin MarcociЕсли успокоили что один поток-коннект все ок с одни и те же прок
адреса то все будет ок.
А на каком основании у тебя были сомнения?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948894
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну... если дата сегмент один, то и перемены те же для каждого процеса и для всех потоков привязанных к нему.
и вот у меня возникла мысль что образно в function isc_dsql_execute () { int Bla; .... } переменная Bla может обломатся в многопоточности.
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948901
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin Marcociу меня возникла мысль что образно в function isc_dsql_execute () { int
Bla; .... } переменная Bla может обломатся в многопоточности.
А почему ты думаешь, что локальные переменные процедуры хранятся в сегменте данных?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38948917
Dorin Marcoci
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
неправильно думал, извиняюсь :)
...
Рейтинг: 0 / 0
fbclient, thread-safe и LoadLibrary
    #38949452
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dorin Marcoci,

На клиентской стороне нужно было сериализовать вызовы connect/disconnect.
После получение хэндла вроде как все было хорошо.

В фибах сделали отдельный семафор, потом вроде как уже в 2.5 сделали семафор внутри fbclient.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / fbclient, thread-safe и LoadLibrary
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]