Блокировки и взаимные исключения в [закрытом] C++

Я вполне уверен, что 'треугольник' http://www.cs.cmu.edu/~quake/triangle.html может генерировать voronoi

6
задан Fantastic Mr Fox 31 May 2012 в 10:35
поделиться

5 ответов

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

Текущий стандарт C ++ не поддерживает параллелизм инструменты.

Хотя вы упомянули, что предпочитаете книги онлайн-руководствам, обязательно нужно прочитать столбец Эффективный параллелизм Херба Саттера.

Также есть готовящаяся книга Энтони Уильямса под названием Параллелизм C ++ в действии . Энтони Уильямс является автором библиотеки Boost.Thread .

Еще одна библиотека потоков, заслуживающая внимания, - это Intel TBB .

9
ответ дан 8 December 2019 в 12:20
поделиться

Блокировки и мьютексы не являются частью текущего стандарта C ++, поскольку они имеют дело с параллелизмом, который не является частью стандарта. Они включены в несколько библиотек, и разные ОС имеют разные способы работы с ними (потоки POSIX и Windows). Если вы возьмете книгу по параллельному программированию для C ++, вы, вероятно, найдете то, что ищете. Их реализации можно найти как в библиотеках boost, так и в ACE.

Потоки являются частью стандарта C ++ 0x. Я пока не знаю ни одной книги по этому поводу, но в Википедии есть аннотации о новых функциях потоковой передачи .

5
ответ дан 8 December 2019 в 12:20
поделиться

C++ is not thread aware at this moment, so mutexes threads etc., are not part of the language.
Normally you'd need to use system specific libraries for threading and mutexes, like pthread library in Linux.
Maybe pthread-like libraries are too c-like, but there are C++ libraries that wrap them C++-way, like ptypes or boost.

3
ответ дан 8 December 2019 в 12:20
поделиться

Это базовые конструкции, используемые для обеспечения корректности в параллельных программах. Они включают Boost и новый стандарт C ++.

Я могу порекомендовать эту книгу, хотя она не фокусируется на C ++: http://www.amazon.com/Art-Multiprocessor-Programming-Maurice-Herlihy /dp/0123705916 .

1
ответ дан 8 December 2019 в 12:20
поделиться

Блокировки и мьютексы (подумайте: взаимное исключение) позволяют взаимодействующим потокам синхронизировать доступ к общим ресурсам. Для краткого обзора концепции прочтите статью в Википедии о взаимном исключении .

Эти концепции не являются частью языка C ++. Книга O'Reilly pthreads будет для вас хорошим справочником, если вы используете платформу POSIX. Для Windows вы можете использовать Системное программирование Windows от Addison-Wesley.

1
ответ дан 8 December 2019 в 12:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: