Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
#1

СИ: одновременный вызов функции. библиотека. - C++

19.07.2011, 12:27. Просмотров 878. Ответов 3
Метки нет (Все метки)

Трудно задать вопрос, когда не очень понятно, что нужно получить в ответ. Попробую так:

Пусть есть некий my_lib.so/dll содержащий функцию foo(). Поскольку к foo() может произойти "одновременно" несколько обращений, то желательно каким либо образом организовать их обработку (в очередь поставить или ещё что).

Собственно вопрос, что именно нужно сделать и в какую сторону смотреть? Как правильно решаются подобные задачи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2011, 12:27     СИ: одновременный вызов функции. библиотека.
Посмотрите здесь:

C++ Вызов функции
C++ Вызов функции
C++ Вызов функции!
Вызов функции в возврате значения функции C++
вызов функции C++
C++ Вызов функции
C++ Вызов функции
Вызов функции C++
Вызов функции в параметре другой функции C++
C++ Вызов функции внутри другой функции с передачей локальной переменной по ссылке
C++ Вызов функции
вызов функции из под функции C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
407 / 500 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
19.07.2011, 12:31     СИ: одновременный вызов функции. библиотека. #2
возможно в сторону многопоточности и очереди выполнения?
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
19.07.2011, 13:29  [ТС]     СИ: одновременный вызов функции. библиотека. #3
Пока так:
Добавил переменную flag. Вставил в foo() бесконечный цикл проверяющий её значение перед телом функции и изменяющий на true/false при начале/окончании foo(). С помощью этих и похожих извращений реализовал некое подобие очереди. Выглядит не очень, но на пару дней хватит.

pthreads оставил на вечер - похоже, что потребует некоторого времени для изучения. Если вдруг, появятся еще какие-либо варианты, буду рад почитать.
Net_Wanderer
235 / 208 / 19
Регистрация: 08.06.2011
Сообщений: 467
19.07.2011, 14:40     СИ: одновременный вызов функции. библиотека. #4
Цитата Сообщение от Vladimir. Посмотреть сообщение
Пока так:
Добавил переменную flag. Вставил в foo() бесконечный цикл проверяющий её значение перед телом функции и изменяющий на true/false при начале/окончании foo(). С помощью этих и похожих извращений реализовал некое подобие очереди. Выглядит не очень, но на пару дней хватит.

pthreads оставил на вечер - похоже, что потребует некоторого времени для изучения. Если вдруг, появятся еще какие-либо варианты, буду рад почитать.
...
Как нельзя делать синхронизацию!

Пожалуй самая большая глупость, какую только можно сделать чтобы приостановить поток – это загнать его в пустой цикл:
C++
1
while( некое_условие ) {}

То, чем вы занимаетесь назывется синхронизация.
Вот статья на тему: http://www.sofmos.com/lyosha/Article...hreading2.html
Yandex
Объявления
19.07.2011, 14:40     СИ: одновременный вызов функции. библиотека.
Ответ Создать тему
Опции темы

Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru