вторник, 7 февраля 2012 г.

Java. Pipe. Реализации и сравнение.

Ну вот уж наконец добрался до написания статей. Каникулы прошли, но на них писать было абсолютно лень и вот руки по-тихоньку дошли.:)

Первое с чего решил я начать - Пайпы (Pipe). Pipe является разновидностью "трубок", а конкретно неименнованной однонаправленной "трубкой", т.е. каналом, данные по которому идут в одном направлении, в отличие от сокета, трубки с дву-направленным каналом, данные в котором могут идти в обоих направлениях. Неименованной же трубкой Pipe называется из-за того, что указатель(дескриптор) на уже созданный Pipe можно получить лишь передав его как переменную внутри программы. Именованные трубки, такие как сокет и линуксовый mkfifo могут быть доступны вне создавшей их программы и даже из сети(сокет).

Все выше перечисленные разновидности "трубок" являются незаменимыми средствами межпроцессного взаимодействия (Inter Process Communications - IPC) и реализованы в любой ОС... И соответственно реализованы и в Java (аж 3 способами), т.к. в виртуальной машине Java тоже реализованы свои потоки.