GHashTable (glib2) поток безопасен? - PullRequest
9 голосов
/ 12 января 2012

У меня есть несколько потоков, добавляющих, изменяющих и ищущих данные в GHashTable. Это потокобезопасно, или мне нужно самому реализовать безопасность потоков?

1 Ответ

14 голосов
/ 12 января 2012

В документации это довольно ясно сказано:

После вызова g_thread_init() GLib полностью поточнобезопасен (все глобальные данные автоматически блокируются), но отдельные экземпляры структуры данных не блокируются автоматически по соображениям производительности. Так, например, вы должны координировать доступ к одному и тому же GHashTable из нескольких потоков.

Итак: нет, хеш-таблица не является поточно-ориентированной.

...