ОБНОВЛЕНО: Есть ли поточно-безопасный, незакрепленный и доступный на всех дистрибутивах Linux Приращение функция доступна на C или C++?Непрерывная функция блокировки без блокировки?
ответ
У GLib есть функции для этого. Вы можете проверить http://library.gnome.org/devel/glib/stable/glib-Atomic-Operations.html
В частности, это звучит, как вы хотите g_atomic_int_inc()
Должен ли я включать GLib в зависимость от моего проекта? Или это просто .lib? – jldupont
Да, вам нужно будет ссылаться на glib, но это не должно быть проблемой, поскольку он доступен по умолчанию для каждого дистрибутива Linux (?) Linux. – jstedfast
Он доступен только для систем с установленной GNOME. – HalfBrian
Нынешние стандарты C и C++ не определяют такую вещь. У вашей реализации может быть и одно.
Я думаю, что это расширения GNU и конкретные процессоры, но посмотрите на GNU C Atomic Builtins.
Я думаю, что существуют также атомные «библиотеки», которые используют встроенную сборку и т. Д. Для обеспечения таких функций.
- 1. Многопроцессорное программирование: блокировки без блокировки
- 2. MySQL Операция блокировки/блокировки
- 3. CruiseControl.NET Непрерывная интеграция Доступ к файлу блокировки
- 4. Непрерывная страница блокировки вызовов AJAX, Firefox
- 5. Функция блокировки от детей
- 6. самозагрузки функция блокировки JQuery
- 7. Функция блокировки на NodeJS
- 8. Функция блокировки рекламных блоков
- 9. Избегайте блокировки спин-блокировки
- 10. Загрузка javascript без блокировки
- 11. std :: condition_variable без блокировки
- 12. Коллекция Threadsafe без блокировки
- 13. ServiceStack: Обработка без блокировки
- 14. Запуск без блокировки
- 15. Ищет контейнер без блокировки
- 16. Без таблиц блокировки MySQL
- 17. Эффективное выполнение без блокировки
- 18. Циркуляр без блокировки
- 19. Чтение Java без блокировки
- 20. Безопасность потока без блокировки
- 21. Detect Keypress без блокировки
- 22. очередь без блокировки?
- 23. SignInManager без функций блокировки
- 24. Ждите переменную без блокировки
- 25. Обновление без блокировки записи
- 26. MySQLDump без блокировки таблиц
- 27. Без блокировки win32com.client.Dispatch
- 28. SQL-представление без блокировки
- 29. Несколько процессов без блокировки
- 30. Глобальная ревизия без блокировки
Это будет частью C++ 0x, когда это выходит. – rlbond
Вы говорите «без блокировки», а альтернативы, указанные ниже, блокируются. Но они не являются бесплатными; атомные операции требуют согласования всех ядер на процессоре, что включает в себя очистку кеша. Так что если вы найдете многопоточную программу, увеличивающую этот счетчик тысячи раз в секунду, атомные операции окажут заметное влияние на вашу производительность. –
@Martin: «В этой вселенной нет ничего свободного», вот что я всегда говорю :-) Спасибо за комментарий: частота, с которой я буду использовать этот объект, очень низок. – jldupont