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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Многопоточность]C++98 vs C++11 
:(
    Опции темы
drug007
Дата 18.8.2014, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Добрый день.
Есть необходимость сравнить стандарт C++98 vs C++11 с точки зрения разработки многопоточных приложений. Виртуально я понимаю, что разница в пользу C++11, но поскольку реального опыта немного, хотелось бы спросить у опытных людей, кто писал и там и там - есть ли разница на практике и насколько она большая? Future/promises/et al это все хорошо, но возможно на практике их мало используют по каким-либо причинам? Может кто опытом поделиться?

P.S. основной контекст вопроса: добавит ли переход на C++11 продуктивности разработчикам или это больше сахар/мода/другое и можно спокойно оставаться на С++98, ничего не потеряем
PM MAIL   Вверх
NoviceF
Дата 18.8.2014, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



С++98 не знает о потоках ничего. Вообще. 
Поддержка многопоточности реализована сторонними библиотеками, например, Boost.Thread, pthread(для Posix совместимых ОС) и т.п.
PM MAIL   Вверх
drug007
Дата 18.8.2014, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Так я это  и имею в виду - в C++98 пилить ручками нужно, а в С++11 многое есть из коробки. Поэтому виртуально С++11 выигрывает. Но как это выглядит на практике? Не является ли эта сторона стандарта малоиспользуемой фичей? Возможно так какие-то подводные камни и люди попробовав продолжают писать ручками через pthread/boost?
PM MAIL   Вверх
NoviceF
Дата 18.8.2014, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



drug007, не юзаю c++11, но могу сказать, что потоковая часть c++11 по сути и есть Boost.Thread.

Если бы у меня был выбор - использовал бы c++11 без раздумий. И вообще я бы пошёл от обратного, какие есть возражения против того, чтобы использовать c++11? 
Если уже есть проект - ничего не мешает перекомпилить его новым компилятором, с обратной совместимостью проблем возникнуть не должно, а новые части проекта писать уже с использованием фич одиннадцатых плюсов.
PM MAIL   Вверх
drug007
Дата 18.8.2014, 17:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Да я вот хочу как раз убедить народ, что нужно переходить на С++11. Просто вдруг есть контаргументы - вот решил спросить на всякий случай.
PM MAIL   Вверх
NoviceF
Дата 19.8.2014, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(drug007 @  18.8.2014,  18:15 Найти цитируемый пост)
Просто вдруг есть контаргументы - вот решил спросить на всякий случай. 

Думаю, раз "народ" до сих пор не перешёл самостоятельно, какие-то контраргументы имеются у него smile.  У нас, например, целевая платформа просто не поддерживает (официально) gcc старше 4.3, вот и весь аргумент smile
PM MAIL   Вверх
tzirechnoy
Дата 19.8.2014, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Контраргумент: код, реализующий pthreads -- гораздо меньшэ, написан в меньшэм количестве мест, сравнительно легко смотрится при помощи gdb и не использует всякой плюсовой магии по оборачиванию шаблонов и параметризацыи функцый в периоде компиляцыи.
Его работу проще понять. Это очень важно для отладки.
PM MAIL   Вверх
drug007
Дата 19.8.2014, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(NoviceF @  19.8.2014,  08:39 Найти цитируемый пост)
Думаю, раз "народ" до сих пор не перешёл самостоятельно, какие-то контраргументы имеются у него smile.  У нас, например, целевая платформа просто не поддерживает (официально) gcc старше 4.3, вот и весь аргумент

Контраргументы, по которым народ не перешел уже отпали по естественным причинам. 

Цитата(tzirechnoy @  19.8.2014,  09:36 Найти цитируемый пост)
Контраргумент: код, реализующий pthreads -- гораздо меньшэ, написан в меньшэм количестве мест, сравнительно легко смотрится при помощи gdb и не использует всякой плюсовой магии по оборачиванию шаблонов и параметризацыи функцый в периоде компиляцыи.
Его работу проще понять. Это очень важно для отладки. 

Вот как раз такие моменты я и хочу узнать, спасибо. Вот только я считал, что pthreads наоборот даст больше кода в результате. Отлаживать сетевой и многопоточный код я предпочитаю через printf, хотя gdb штука очень хорошая и полезная, безусловно. 


Это сообщение отредактировал(а) drug007 - 19.8.2014, 10:06
PM MAIL   Вверх
borisbn
Дата 25.8.2014, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(NoviceF @  18.8.2014,  15:30 Найти цитируемый пост)
 потоковая часть c++11 по сути и есть Boost.Thread

Неа. Вернее, совсем нет. Вот тут - http://stackoverflow.com/questions/7241993...c11-equivalents - первый ответ (у всех м.б. отсортировано по-разному, поэтому см. ответ, начинающйся с "There are several differences between Boost.Thread and the C++11 standard thread library:")


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


Опытный
**


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

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



Цитата(borisbn @  25.8.2014,  10:15 Найти цитируемый пост)
Неа. Вернее, совсем нет.

Согласен, что они не идентичны, но т.к. стандартные потоки сделаны на основе Boost.Thread (по утвержденияю автора Boost.Thread), то сходства между ними всётаки довольно много 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.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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