Шрифт:
Функция
Требуется также, чтобы библиотека потоков поддерживала атрибут PTHREAD_PROCESS_SHARED.
Существует несколько способов разделения памяти между различными процессами, что мы подробно описываем во втором томе [2] данной серии. В этом примере мы используем функцию
2
Стивенс У. UNIX: взаимодействие процессов. — СПб.: Питер, 2002.
Листинг 30.14. Функция my_lock_init: использование взаимного исключения потоками, относящимися к различным процессам (технология Pthread)
В листинге 30.15 показаны только функции
Листинг 30.15. Функции my_lock_wait и my_lock_release: использование блокировок Pthread
Сравнивая строки 3 и 4 табл. 30.1, можно заметить, что версия, использующая синхронизацию процессов при помощи взаимного исключения, характеризуется более высоким быстродействием, чем версия с блокировкой файла.
30.9. Сервер TCP с предварительным порождением процессов: передача дескриптора