В настоящее время у меня есть код, написанный с использованием библиотеки поддержки потоков C++ 11: http://en.cppreference.com/w/cpp/threadБезопасно ли использовать boost :: lockfree с библиотекой поддержки потоков C++ 11?
Мне интересно, можно ли смешать этот код с boost :: lockfree. http://www.boost.org/doc/libs/1_54_0/doc/html/lockfree.html
То есть, я хочу, чтобы несколько C++ 11 std :: threads одновременно получали доступ boost :: lockfree :: queue. Вероятно, было бы безопаснее заменить поток C++ 11 на boost :: thread, но если бы я мог свести к минимуму изменение кода, было бы неплохо.
Ответ на короткий вопрос: «Вероятно»: каждая свободная структура данных и алгоритм, которые я знаю, не полагаются на все детали потоковой модели, так как они полагаются на примитивы процессора. Длинный ответ - «данно», потому что это, возможно, будет зависеть от некоторого глубокого mojo на вашем языке и ускорить реализацию. На платформе с отсутствием примитивов параллелизма (например, CAS) вы можете представить себе кучу вещей, которые реализуются с помощью каких-то серьезных сумасшедших способов, а 'boost' и' std' выбирают разные сумасшедшие способы. Вы программируете на относительно стандартном оборудовании? – Yakk
Является ли переносимость проблемой? Если да, то вы его используете холодно. Если разработка находится в Windows, вы можете использовать библиотеки параллельных шаблонов. – Jagannath