Реентерабельность на FreeBSD

Реентерабельность (reentrant) является характеристикой библиотечных функций, которая позволяет множественным процессам и потокам использовать одно адресное пространство с гарантией того, что данные сохраняемые в этом пространстве останутся неизменными между вызовами функций. Другими словами reentrant функция гарантирует корректное поведение всех одновременно вызванных «копий» этой функции в одном процессе. Это очень важно для многопоточного приложения или при обработке сигнала.

(далее…)

POSIX потоки на FreeBSD

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

(далее…)

Потоки

Данная публикация вводная в тему потоков, но все равно может показаться слишком технической и бесполезной для посетителя. Однако, именно общее понимание того, как работают потоки и для чего они необходимы может быть полезно для обычного пользователя. Сразу оговорюсь, публикация не охватывает весь спектр тонкостей и вопросов связанных с потоковым программированием.

(далее…)