powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / класс PipeInputStream и deadLock
5 сообщений из 5, страница 1 из 1
класс PipeInputStream и deadLock
    #39802256
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В описании класса PipeInputStream написано:
Код: java
1.
A piped input stream should be connected to a piped output stream; the piped input stream then provides whatever data bytes are written to the piped output stream. Typically, data is read from a PipedInputStream object by one thread and data is written to the corresponding PipedOutputStream by some other thread. Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread. The piped input stream contains a buffer, decoupling read operations from write operations, within limits. A pipe is said to be broken if a thread that was providing data bytes to the connected piped output stream is no longer alive.



Может кто пояснит фразу: Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread. ?
Ведь при работе с одним потоком команды выполняются последовательно, и взаимной блокировки двух методов не может быть? Или здесь под deadlock подразумевается что то другое?
...
Рейтинг: 0 / 0
класс PipeInputStream и deadLock
    #39802257
faustgreen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
*
A piped input stream should be connected to a piped output stream; the piped input stream then provides whatever data bytes are written to the piped output stream. Typically, data is read from a PipedInputStream object by one thread and data is written to the corresponding PipedOutputStream by some other thread. Attempting to use both objects from a single thread is not recommended, as it may deadlock the thread. The piped input stream contains a buffer, decoupling read operations from write operations, within limits. A pipe is said to be broken if a thread that was providing data bytes to the connected piped output stream is no longer alive.
...
Рейтинг: 0 / 0
класс PipeInputStream и deadLock
    #39802264
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть канал, в который пишет некий поток, и этот же самый поток читает из этого же самого канала.
Читатель прочитал всё и "повис" на ожидании новых данных.
Писатель пытается записать больше данных, чем доступно в буфере канала и "повисает" в ожидании читателя.
Вопрос: "Как разблокировать ожидающий поток?" оставляется в качестве домашнего упражнения.
...
Рейтинг: 0 / 0
класс PipeInputStream и deadLock
    #39802290
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

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

Это не так.
...
Рейтинг: 0 / 0
класс PipeInputStream и deadLock
    #39802292
mr_virtus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
faustgreen,

PipedInputStream наследует read() - который 'This method blocks until input data is available...'.

Отсюда может и повиснуть Thread.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / класс PipeInputStream и deadLock
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]