2015-01-20 3 views
0

Недавно я прочитал, что блокировки потоков - это системные ресурсы, поэтому их нужно правильно выпускать «точно так же, как память». Я понял, что не знаю об этом.Зачем нужны блокировки потоков?

Может ли кто-то предложить дополнительную информацию об этом факте или указать на хорошую ссылку? Более конкретно: как я могу думать о реализации блокировок на более глубоком уровне системы? Каковы возможные последствия утечки замков? Существует ли максимальное количество блокировок в системе?

+1

Всегда документируйте, какую операционную систему вы используете, когда задаете вопрос о реализации. –

ответ

0

Все это означает, что вы должны быть осторожны, чтобы все, что вы блокировали, было выпущено, подобно тому, как вы будете осторожны, чтобы закрыть сетевые подключения или файлы или контексты графических устройств или что-то еще. Если вы пишете код, который не заботится об этом, тогда вы рискуете иметь тупик в программе или не сможете прогрессировать, когда не сможете получить доступ к чему-то, что заблокировано (поскольку точка блокировки - убедиться, что несколько потоков могут получить доступ к чему-то безопасному , поэтому, если одна нить оставляет что-то заблокированное, другие потоки, к которым нужно получить доступ, закрываются).

Программа будет иметь серьезные проблемы с производительностью задолго до того, как она закончится физическими блокировками, поэтому вам не придется беспокоиться о количестве доступных замков.

Смежные вопросы