Клиентские сокеты по протоколу TCP/IP в Java

Клиентские сокеты по протоколу TCP/IP в JavaСокеты по протоколу ТСР/IP служат для реализации надежных двунаправленных, постоянных, двухточечных, потоковых соединений между хостами в Интернете.

Сокет может служить для подключения системы ввода-вывода в Java к другим программам, которые могут находиться как на локальной машине, таки на любой другой машине в Интернете.

В Java поддерживаются две разновидности сокетов по протоколу ТСР /IP: один — для серверов, другой — для клиентов.

Класс ServerSocket служит «приемником», ожидая подключения клиентов прежде, чем предпринять какие-нибудь действия. Иными словами, класс ServerSocket предназначен для серверов, тогда как класс Socket — для клиентов. Читать

Класс Exchanger, примеры реализации кода в Java

Класс Exchanger, примеры реализации кода в JavaВероятно, наиболее интересным с точки зрения синхронизации является класс Exchanger, предназначенный для упрощения процесса обмена данными между двумя потоками исполнения.

Принцип действия класса Exchanger очень прост: он ожидает до тех пор, пока два отдельных потока исполнения не вызовут его метод exchange(). Как только это произойдет, он произведет обмен данны­ми, предоставляемыми обоими потоками. Такой механизм обмена данными не только изящен, но и прост в применении. Читать

Класс CyclicBarrier, примеры реализации кода в Java

Класс CyclicBarrier, примеры реализации кода в JavaВ программировании нередко возникают такие ситуации, когда два или больше потока должны находиться в режиме ожидания в предопределенной точке исполне­ния до тех пор, пока все эти потоки не достигнут данной точки.

Для этой цели в параллельном API предоставляется класс CyclicBarrier. Он позволяет определить объект синхронизации, который приостанавливается до тех пор, пока определенное количество потоков исполнения не достигнет некоторой барьерной точки. Читать

Класс CountDownLatch, примеры реализации кода в Java

Класс CountDownLatch, примеры реализации кода в JavaИногда требуется, чтобы поток исполнения находился в режиме ожидания до тех пор, пока не наступит одно (или больше) событие.

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

Как только значение счетчика достигнет нуля, самоблокировка будет снята. Читать

Класс Semaphore, примеры реализации кода в Java

Класс Semaphore, примеры реализации кода в JavaПервым сразу же распознаваемым среди объектов синхронизации является семафор, реализуемый в классе Semaphore.

Семафор управляет доступом к обще­му ресурсу с помощью счетчика. Если счетчик больше нуля, доступ разрешается,а если он равен нулю, то в доступе будет отказано.

В действительности этот счетчик подсчитывает разрешения, открывающие доступ к общему ресурсу. Следовательно,чтобы получить доступ к ресурсу, поток исполнения должен получить у семафора разрешение на доступ. Читать

Продвижение сайта в Краснодаре

Продвижение сайта в КраснодареС развитием Интернета бизнесу приходится подстраиваться под современные реалии. Те, кто этого не делает, быстро оказываются никому не нужными.

Но у всех остальных тоже могут возникнуть проблемы, если они подойдут к вопросу без должного внимания. Читать

Профессиональная компьютерная помощь вашим гаджетам — ремонт ноутбуков с выездом на дом

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

Но, к большому сожалению, даже такие титанические старания не смогут уберечь от внезапных поломок, которые внесут в привычный график массу дискомфорта. Читать

Автоматическое закрытие файлов в Java

Автоматическое закрытие файлов в JavaВо многих Java программ, для закрытия фай­лов, которые больше не нужны, метод close() вызывается явным образом.

Такой способ закрытия файлов используется еще с тех пор, как вышла первая версия Java. Именно поэтому он часто встречается в существующих программах. Более того, он до сих пор остается вполне оправданным и полезным.

Однако в версию JDK 7 включено новое средство, предоставляющее другой, более рациональный способ управления ресурсами,в том числе и потоками файлового ввода-вывода, автоматизирующий процесс закрытия файлов.

Этот способ основывается на новой разновидности оператора try, называемой оператором try с ресурсами, а иногда еще — автоматическим управлением ресурсами. Читать

Переменное число аргументов методов языка Java

Переменное число аргументов методов языка JavaИногда оказываются полезными методы, способные принимать переменное чис­ло аргументов.

Например, методу, устанавливающему соединение с Интернетом, могут понадобиться имя и пароль пользователя, имя файла, протокол и другие параметры. Если при вызове метода некоторые из этих данных опущены, то должны использоваться значения по умолчанию.

В подобных ситуациях было бы удобнее передавать только те аргументы, для которых заданные по умолчанию значения неприменимы, а для этого требуется метод, который мог бы принимать аргументы, количество которых заранее неизвестно.

До версии J2SE5 для поддержки списков аргументов переменной длины применя­лись два способа, ни один из которых не был особенно удобен. Читать

Вложенные и внутренние классы Java

Вложенные и внутренние классы JavaВ языке Java определены вложенные классы. Вложенным называется такой класс, который объявляется в другом классе.

Вложенные классы не относятся к базовым языковым средствам Java. Они даже не поддерживались до появления версии Java 1.1, хотя с тех пор часто применяются в реальных программах, и поэтому о них нужно знать.

Вложенный класс не может существовать независимо от класса, в который он вло­жен. Следовательно, область действия вложенного класса ограничена его внешним классом. Если вложенный класс объявлен в пределах области действия внешнего класса, то он становится членом последнего. Имеется также возможность объявить вложенный класс, который станет локальным в пределах блока. Читать