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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Использование сигналов signal.h, Как пользоваться ими и создовать свои 
V
    Опции темы
GorbunovDiman
Дата 22.2.2011, 21:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Доброго времени суток!

Случайно нашёл вот этот ресурс : http://citforum.ru/programming/unix/signals/

Прочитав его у меня появилися вопрос: Можно ли создовать свои сигналы, которые работают в пределах программы, и соеденять их со слотами
подобно тому как это делается в qt, не используя сам qt? А если можно, то как? smile 


PM MAIL   Вверх
mes
Дата 22.2.2011, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(GorbunovDiman @  22.2.2011,  20:41 Найти цитируемый пост)
 в qt, не используя сам qt?

http://www.boost.org/doc/libs/1_46_0/doc/h....html#id2682409


--------------------
PM MAIL WWW   Вверх
boostcoder
Дата 22.2.2011, 21:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



так:
http://www.boost.org/doc/libs/1_46_0/libs/signals/index.html
http://www.boost.org/doc/libs/1_46_0/libs/...als2/index.html

первая ссылка - потоконебезопасные сигналы.
вторая  - потокобезопасные.
PM WWW   Вверх
GorbunovDiman
Дата 22.2.2011, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А все выше приведёные ссылки справедливы для g++ и Linux?
PM MAIL   Вверх
boostcoder
Дата 22.2.2011, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



да.

PM WWW   Вверх
GorbunovDiman
Дата 24.2.2011, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



За выше приведённые ссылки спасибо! А  можно ли что нибудь полезное "выжать" из signal.h кроме обработки системных сигналов?
PM MAIL   Вверх
mes
Дата 24.2.2011, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


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

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



Цитата(GorbunovDiman @  24.2.2011,  08:49 Найти цитируемый пост)
А  можно ли что нибудь полезное "выжать" из signal.h кроме обработки системных сигналов? 

boost.signal предназначен не для системных сигналов, а для пользовательских.. т.е. применение как в выше упомяннутом qt..



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


Шустрый
*


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

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



А вот опять вопрос

Код

#include <cstdio>
#include <boost/signals2.hpp>
using namespace std;
void x(){
printf(" ");
sleep(2);
printf("w");
sleep(2);
printf("o");
sleep(2);
printf("r");
sleep(2);
printf("l");
sleep(2);
printf("d");
sleep(2);
printf("!");

};

void y(){
printf("H");
sleep(1);
printf("e");
sleep(1);
printf("l");
sleep(1);
printf("l");
sleep(1);
printf("o");

};


int main(){
boost::signals2::signal<void ()> sig;
sig.connect(x);
sig.connect(y);
sig();
printf("\n");
}



Вывод 
Код

world!Hello


Как я понимаю при посылки сигнала он ждёт завершение процедуры.
А можно ли сделать так, чтобы процедуры стартовали одновременно (или так сказать выполнялись параллельно)? smile 

PM MAIL   Вверх
boostcoder
Дата 4.3.2011, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



Цитата(GorbunovDiman @  4.3.2011,  19:57 Найти цитируемый пост)
А можно ли сделать так, чтобы процедуры стартовали одновременно (или так сказать выполнялись параллельно)?

а какое отношение это имеет к сигналам?
PM WWW   Вверх
GorbunovDiman
Дата 5.3.2011, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Отношение формулируется так:

Можно ли сигнал посылать слотам параллельно, а не последовательно? Или, хотя-бы, чтобы сигнал не ждал завершение слота , а сразу переходил к другому? МОЖНО Хоть что-то из этого делать или придётся писать потоки(чего так не хочется )?
PM MAIL   Вверх
boostcoder
Дата 5.3.2011, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


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

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



я уже ответил.
ответ формулируется так: где в с++ вы видели асинхронность или многопоточность предоставляемую языковыми средствами? ;)
PM WWW   Вверх
GorbunovDiman
Дата 5.3.2011, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(boostcoder @ 5.3.2011,  15:19)
я уже ответил.
ответ формулируется так: где в с++ вы видели асинхронность или многопоточность предоставляемую языковыми средствами? ;)

Ну, к сожалению, придётся писать потоки   smile 

Честно я этого в языке не видел, но надеялся что есть. Как говорится, надежда умерает последней!

Спасибо, за помощь  smile

Добавлено через 1 минуту и 7 секунд
 smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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