Сводка по безопасности потоков C ++

Я хотел бы получить краткую информацию о том, что именно является потокобезопасным в C ++ как в соответствии с текущим стандартом и C ++ 0x, так и на практике (вообще говоря, но также в моем случае с gcc 4.5. 1).

Насколько я понимаю, для контейнеров STL безопасность потоков не гарантируется в соответствии с текущим стандартом. Правда ли, что на практике они являются потокобезопасными для использования с одним писателем, несколькими читателями (в gcc и, вероятно, в большинстве современных компиляторов)? Гарантируется ли это C ++ 11?

А как насчет типов POD? Я знаю, что стандарт ничего не гарантирует, но мне сказали, что на практике все потокобезопасны для чтения и записи. Конечно, даже что-то простое, например, оператор инкремента, все равно может нуждаться в синхронизации, так как может быть несколько операций чтения и записи.

Меня в первую очередь интересуют ответы, но я буду признателен за ответы на вопросы.

5
задан Xeo 19 December 2011 в 02:01
поделиться