Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> локализация глобальных переменных, для встраивания в многопоточную прог-му 
V
    Опции темы
igsilya
Дата 23.5.2011, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.9.2009

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



Я в принципе не новичок, но сталкиваюсь с подобным впервые.
Есть большой модуль в котором есть много глобальных переменных, чтоб от них избавится потребуется очень много времени и сил.
Нужно использовать функцию из этого модуля в другой программе. Эта программа многопоточная (использую pthread)  => глобальные переменные того модуля будут использоваться всеми потоками сразу(что нас не устраивает).
Требуется, не отказываясь от потоков в пользу процессов, локализовать глобальные переменные того модуля для каждого потока.(каждому потоку по своему экземпляру).
Надеюсь получилось описать проблему.
Может кто сталкивался с подобным? 
Заранее спасибо.
PM MAIL   Вверх
borisbn
Дата 23.5.2011, 19:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Сталкивался. Кроме создания класса и изменения глобальных переменных на члены этого класса ничего лучше не придумал


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
igsilya
Дата 23.5.2011, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.9.2009

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



Просто этот так называемый модуль состоит сам из 14 файлов, включат много классов и пространств имен.
Я не очень представляю как это запихнуть в один класс.
PM MAIL   Вверх
borisbn
Дата 23.5.2011, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Всего то 14… а в один и не надо. Сделай 14 классов. Никто и не говорил, что будет легко. С недельку придётся убить. Мож меньше…


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
igsilya
Дата 23.5.2011, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.9.2009

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



надо до завтра. так что не вариант. мне проще будет тогда потоки процессами заменить.
PM MAIL   Вверх
xvr
Дата 24.5.2011, 19:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Сделать все переменные TLS (локальными для thread'а). В разых компиляторах это делается разными ключевыми словами.

PM MAIL   Вверх
igsilya
Дата 24.5.2011, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 12.9.2009

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



а можно пример для GNU G++ 4.4?

все, сам нашел в нете. Всем спасибо за помощь.

Это сообщение отредактировал(а) igsilya - 24.5.2011, 19:46
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




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


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

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