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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос по Boost::threads 
:(
    Опции темы
pento
  Дата 20.1.2007, 23:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Имеем
Код

void fuck() {
    boost::mutex::scoped_lock lock(io_mutex);
    cout << "Hello, world" << endl;
};

int main() {
    cout << "Begin"  << endl;
    boost::thread thrd1(&fuck);
    boost::thread thrd2(&fuck);
    boost::thread thrd3(&fuck);
    cout << "Before thrd1"  << endl;
    thrd1.join();
    cout << "Before thrd2"  << endl;
    thrd2.join();
    cout << "Before thrd3"  << endl;
    thrd3.join();
    cout << "End"  << endl;
    return 0;
}


Вывод:
Код

Begin
Hello, world
Hello, world
Before thrd1
Before thrd2
Before thrd3
Hello, world
End

Почему не
Код

Begin
Before thrd1
Hello, world
Before thrd2
Hello, world
Before thrd3
Hello, world
End

?



Это сообщение отредактировал(а) pento - 20.1.2007, 23:16
PM MAIL   Вверх
bsa
Дата 20.1.2007, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

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



join() - читай не как передача управления потоку, а ожидание завершения потока. Потоки выполняются параллельно основной программе, поэтому вывод может быть любым. Теоретически, даже поток номер 3 может выполнится раньше второго.
PM   Вверх
pento
Дата 21.1.2007, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



bsa, понятно. Спасибо!
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.0413 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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