Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
Здравствуйте, csharper, Вы писали:
C>Hi
C>Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
C>Спасибо!
в boost вроде threadы были( www.boost.org ) может это тоже....
Здравствуйте, LuciferMoscow, Вы писали:
LM>Здравствуйте, csharper, Вы писали:
C>>Hi
C>>Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
C>>Спасибо! LM>в boost вроде threadы были( www.boost.org ) может это тоже....
Здравствуйте, csharper, Вы писали:
C>Ага, я смотрел. Но что-то не нашел ивентов
Сейчас придет Максим Егорушкин и скажет, что ну их нафиг, эти убогие виндовые events, лучше использовать condition variables.
Это я не в качестве наезда (ни на Егорушкина, ни на condition variables).
А если серьезно, то в POSIX системах нет events. Есть как раз таки condition variables.
csharper wrote:
> Hi > > Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
boost::thread. Только тебе придется забыть про event и освоить condition variables.
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, csharper, Вы писали: C>>Ага, я смотрел. Но что-то не нашел ивентов CX>Сейчас придет Максим Егорушкин и скажет, что ну их нафиг, эти убогие виндовые events, лучше использовать condition variables. CX>Это я не в качестве наезда (ни на Егорушкина, ни на condition variables). CX>А если серьезно, то в POSIX системах нет events. Есть как раз таки condition variables.
Не знаю кто такие condition variables, но они могут работать в разных процессах?
Здравствуйте, CrystaX, Вы писали:
CX>Здравствуйте, LuciferMoscow, Вы писали:
LM>>Не знаю кто такие condition variables, но они могут работать в разных процессах?
CX>Насколько я знаю, да. Только при этом они должны находиться в разделяемой процессами памяти.
И должен быть установлен аттрибут PTHREAD_PROCESS_SHARED
Здравствуйте, csharper, Вы писали:
C>Hi
C>Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
C>Спасибо!
Гугль рулез форева
Кроме Boost::Thread, который вероятно войдет в Стандарт C++ кстати : ZThread OpenThreads Common C++(не только триды) С++ portable components Сюда в общем загляни.
... << А писал я этот бред на RSDN@Home 1.1.4 beta 7 rev. 447, под звуки Scorpions — Under The Same Sun>>
Здравствуйте, Mr.Chipset, Вы писали:
MC>Здравствуйте, csharper, Вы писали:
C>>Hi
C>>Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
C>>Спасибо! MC>Гугль рулез форева
Здравствуйте, alnsn, Вы писали:
A>Здравствуйте, Mr.Chipset, Вы писали:
MC>>Кроме Boost::Thread, который вероятно войдет в Стандарт C++ кстати :
A>А может и не войдет A>http://lists.boost.org/boost/2005/05/25846.php
Тогда, в принципе не стоит считать это преимуществом и начать поиски лучшей библиотеки
... << А писал я этот бред на RSDN@Home 1.1.4 beta 7 rev. 447, под звуки The Scorpions — Wind Of Change>>
Здравствуйте, Tom, Вы писали:
ME>>boost::thread. Только тебе придется забыть про event и освоить condition variables. Tom>А можно вкратце что сие есть таке?
Механизм ожидания наступления определенного события.
Вот: здесь, здесь
Здравствуйте, csharper, Вы писали:
C>Ага, я смотрел. Но что-то не нашел ивентов
Event можно рассматривать как семафор, max count которого равен единице. Комбинируя мьютекс и семафор ты можешь "руками" сделать аналог эвента.
В своё время я так поступал, вариант Виндовс/Линукс. Посмотри, может пригодится .
Вдогонку на всякий случай хочу заметить, что не стоит оптимизировать класс Event, и вместо пары семафор-мьютекс использовать только один мьютекс. Изначально я так и хотел поступить поскольку мьютекс можно рассматривать как бинарный семафор. Но беда в том что posix mutex должен быть разблокирован тем же потоком, каким он был заблокирован. Это довольно существенное ограничение .
Почему добро всегда побеждает зло? Потому что историю пишут победители.
Здравствуйте, csharper, Вы писали:
C>Hi
C>Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
C>Спасибо!
есть все это, плюс многое другое. кросс-платформенная и бесплатная. хорошо документированная, есть даже книжка на русском языке в стиле Getting Startes.
Здравствуйте, Kerrigan, Вы писали:
K>Здравствуйте, Amethyst, Вы писали:
K>В коде Eventа у Вас ошибка в линуксовой части в методе wait. Должно быть так K>
Здравствуйте, csharper, Вы писали:
C>Hi
C>Существует ли бесплатная кросс-платформенная (сейчас нужны win + linux) библиотека для работы с потоками и синхронизации (нужны критические секции и события)?
От себя добавлю, что это не просто библиотека а фоеймворк, но гибкий:
— Есть желание — юзай фреймворк,
— Нет — юзай короссплатформенные низкоуровневые ( посравнению с фреймворком ) функции