Гость
Форумы / Java [игнор отключен] [закрыт для гостей] / класс PipeInputStream и deadLock / 5 сообщений из 5, страница 1 из 1
16.04.2019, 16:23
    #39802256
faustgreen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
класс PipeInputStream и deadLock
В описании класса 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
16.04.2019, 16:25
    #39802257
faustgreen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
класс PipeInputStream и deadLock
*
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
16.04.2019, 16:33
    #39802264
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
класс PipeInputStream и deadLock
Есть канал, в который пишет некий поток, и этот же самый поток читает из этого же самого канала.
Читатель прочитал всё и "повис" на ожидании новых данных.
Писатель пытается записать больше данных, чем доступно в буфере канала и "повисает" в ожидании читателя.
Вопрос: "Как разблокировать ожидающий поток?" оставляется в качестве домашнего упражнения.
...
Рейтинг: 0 / 0
16.04.2019, 17:13
    #39802290
mr_virtus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
класс PipeInputStream и deadLock
Basil A. Sidorov,

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

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

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

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


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