Я цитирую http://en.wikipedia.org/wiki/Reentrant_(subroutine)
Обе концепции повторного входа и безопасности потоков связаны с тем, как функции обрабатывают ресурсы.Однако они не одинаковы.
Хотя концепция повторного входа может влиять на внешний интерфейс функции, безопасность потоков относится только к реализации функции, а не к ее внешнему интерфейсу.
- В большинстве случаев для созданияне реентерабельная функция reentrant, ее внешний интерфейс должен быть изменен таким образом, чтобы вызывающая функция предоставляла все данные.
- чтобы сделать поточно-небезопасную функцию поточно-безопасной, требуется только реализацияизменяются, как правило, путем добавления блоков синхронизации для защиты общих ресурсов от одновременного доступа различных потоков.
Следовательно, повторное включение является более фундаментальным свойством, чем безопасность потока, и по определению приводит к безопасности потока: каждая функция повторного входа являетсяпотокобезопасный;однако не каждая поточно-ориентированная функция является реентерабельной.