Re: разделяемые данные между потоками (нитями) - как?
От: George Seryakov Россия  
Дата: 14.03.04 00:41
Оценка: :)
Здравствуйте, darkhunter, Вы писали:

D>Как можно сделать такой COM-объект, который бы всем его создавшим потокам (нитям) предоставлял какие-либо данные и позволял их модифицировать, вроде как static-переменные в классах?

D>спасибо.

Делаешь глобальные переменные. Либо статики в классе. Не забываешь синхронизировать доступ. Для внепроцессного сервера — данные в этих переменных будут разделяемы между всеми инстансами, созданными так, что имплементация COM-объекта оказалось в одном и том же процессе. (Какая неуклюжая оговорка! А все потому что и внепроцессный сервер может в нескольких процессах оказаться). Для внутрипроцессного сервера данные будут разделяться между всеми инстансами созданными в одном (клиентском) процессе.

Интересный вопрос — как сделать разделяемыми между разными процессами. Ну, сделать расшаренные сегменты, memory-mapped files вместо глобальных переменных.

Совсем интересный вопрос — как расшарить данные между разными машинами. Можно, к примеру, положить их в БД на общий сервер. Или Active Directories. Или файл-сервер. Или еще какой разделяемый (COM?) сервер сделать.

А вот если на разных машинах, не соединенных сетью, то уже, кажется, нельзя... Дискеткой же не считается?
GS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.