Пока все идет хорошо, но что произойдет, если инициатором разъединения станет сервер? Поток do_read () обнаружит признак конца файла и завершит работу. И только цикл do_write (), выполняемый в основном потоке, обычно заблокирован в ожидании данных, поступающих из стандартного ввода, и поэтому не получит извещения о том, что произошло какое-то нарушение, до тех пор, пока не предпримет попытку записать строку текста в сокет и не активизирует сигнал PIPE. В клиенте с ветвлением эту ситуацию можно обойти, предусмотрев вызов функции exit () в обработчике сигнала CHLD. В примере клиента с поддержкой многопоточности не возникает сигнал CHLD, который можно было бы перехватить, и поэтому проще всего можно выйти из положения, предусмотрев вызов функции exit () в потоке host_to_user ( ).
Подведем итоги. Многопоточная обработка предоставляет изящный способ достижения параллелизма в сетевых приложениях с установлением логического соединения. К сожалению, текущая реализация потоков в интерпретаторе Perl не совсем надежна, поэтому в следующей версии Perl этот API-интерфейс станет немного иным.
Предполагается, что в версиях Perl 6 будут представлены надежные средства многопоточной обработки, и хотя API-интерфейс, вероятно, в чем-то изменится по сравнению с описанным в настоящем разделе, основные концепции создания, уничтожения и блокировки потоков останутся прежними.
2014-06-25 18:22:23
это интересно При строительстве дома или дачи зачастую используется продукция деревообрабатывающей промышленности. Для изготовления и заготовки при этом используются пилорамы ленточные горизонтальные http://intervesp-stanki.ru/catalog/piloramy_lentochnye_gorizontalnye.htm позволяющие с высокой точностью выполнить необходимый заказ. Станки оснащены пультами управления, программатором и лазерными указателями пропила.