powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
14 сообщений из 39, страница 2 из 2
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34693624
Innate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz Innate
В этом месте разговор пошел по кругу...

В этом месте разговор можно завершать. Вижу по сути ответить нечего.


Зачем же Вам было повторять то, что было сказано Вами же выше? Получается, что Вам сказать-то
как раз и нечего.

Blazkowicz

Innate
А до конца читать мы не хотим или не умеем, да? См. про isEndOfStream().

Уважаемый, Вы зарываетесь. Побоку что поменять. Требование к available или добавить новый метод. Множество существующих реализаций InputStream станут не совместимыми с этими требованиями. Один из вариантов это ещё придется добавить метод isEndOfStreamDetectionSupported().


Согласен, что проблемы совместимости со старыми версиями остануться в обоих случаях.

Blazkowicz
Вы кажется сами подзабыли о чем спрашивали в исходном топике. Про какие-то эксперименты с Java 6. А какие, к черту, эксперементы, если логика работы класса не менялась?


Не кажется ли вам, что логика работы поменялать. В 1.4.2 и 1.5.0 никто не предлагает использовать available() для определения конца потока, в 6.0 это же это предусматривается, правда как-то неоднозначно. Вот и интересно, как работают хотя бы классы, которые Java API принадлежат.

Blazkowicz


Innate
Здесь я про пример ситуации, в которой принципиально невозможно различить, достигнут ли конец протока или просто доступные для чтения данные закончились. Какое-то физическое устроиство или другой источник данных, доступ к которому абстрогируется с помощью InputStream.
Тю блин. Вот это уже точно разговор ни о чем. Ну допустим у меня есть девайсина с буфером. И я читаю из этого буфера, если там есть данные. Такая себе простецкая реализация. Может там данные уже и никогда не придут. Как мне конец потока определить?
Зачем что-то выдумывать, когда наши с Вами выдумки все равно не охватят нужное множество реализаций?

Не кажется ли Вам, что здесь просто нет конца протока. Метод read() тоже никогда не вернет -1 в этом случае. А вот available() 0 вернуть может.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34693644
Innate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov2 Innate
- извините за глупый вопрос, но не могли бы Вы объяснить в каких случаях (для каких задач) Вы планируете использовать метод available()

Да вроде цель, для которой был придуман available(), ясна. Для того, чтобы читать из потока (Stream) данные без блокировки; то есть пока читать нечего, нить (Thread) не блокируется, ожидая прихода данных, а может заняться чем-то другим, прериодически проверяя, с помощью метода available(), не проявилось ли что-то для чтения.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34693658
Innate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton2 Innate

За определённые деньги я напишу для вас одну из реализаций InputStream для чтения потока файла с возможностью "смотреть вперёд". Вопросы согласованности/конкуренции/версионности буду игнорировать, как не имеющие значения для постановки.

Вас это устроит?

Да мне пока не надо. Но буду иметь вас в виду. :)
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34693792
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InnateНе кажется ли вам, что логика работы поменялать.
Нет не кажется.
InnateВ 1.4.2 и 1.5.0 никто не предлагает использовать available() для определения конца потока, в 6.0 это же это предусматривается, правда как-то неоднозначно.
Как раньше так и сейчас никто не предлагал использовать available для определения конца потока.
Как раньше так и сейчас available() возвращает 0 в обоих случаях - конец потока и не возможность чтения без блокировки.

InnateВот и интересно, как работают хотя бы классы, которые Java API принадлежат.
Как работали так и работают. Буфер пустой? available==0. Конец данных? available==0.

Предлагаю сойтись на почти полной бесполезности метода available.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34693939
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
InnateДа вроде цель, для которой был придуман available(), ясна. Для того, чтобы читать из потока (Stream) данные без блокировки; то есть пока читать нечего, нить (Thread) не блокируется, ожидая прихода данных, а может заняться чем-то другим, прериодически проверяя, с помощью метода available(), не проявилось ли что-то для чтения.
- если необходимо чтобы Thread читал данные из потока и делал еще что-то, не означает ли это что необходимо два Thread-а, один из которых занимается чтением данных из потока (и его блокировка нас не волнует), а второй "делает еще что-то"? По моему, это классическая постановка задачи для написания многопоточного приложения.

- как Вы себе представляете "периодическую проверку" в общем потоке с чтением данных и выполнением "чего-то еще"? Без дополнительного потока не обойтись.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34693941
Innate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz InnateНе кажется ли вам, что логика работы поменялать.
Нет не кажется.
InnateВ 1.4.2 и 1.5.0 никто не предлагает использовать available() для определения конца потока, в 6.0 это же это предусматривается, правда как-то неоднозначно.
Как раньше так и сейчас никто не предлагал использовать available для определения конца потока.
Как раньше так и сейчас available() возвращает 0 в обоих случаях - конец потока и не возможность чтения без блокировки.

InnateВот и интересно, как работают хотя бы классы, которые Java API принадлежат.
Как работали так и работают. Буфер пустой? available==0. Конец данных? available==0.

Предлагаю сойтись на почти полной бесполезности метода available.

Ок. Сошлись. :)
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695111
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov- если необходимо чтобы Thread читал данные из потока и делал еще что-то, не означает ли это что необходимо два Thread-а, один из которых занимается чтением данных из потока (и его блокировка нас не волнует), а второй "делает еще что-то"? По моему, это классическая постановка задачи для написания многопоточного приложения.
- как Вы себе представляете "периодическую проверку" в общем потоке с чтением данных и выполнением "чего-то еще"? Без дополнительного потока не обойтись.
Показательный пример это задача чтения из большого количества потоков, данные на которые поступают крайне медленно. Для всех этих потоков имеет смысл завести ограниченое число нитей, которые будут их перебирать и вычитывать данные.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695253
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz
Показательный пример это задача чтения из большого количества потоков, данные на которые поступают крайне медленно. Для всех этих потоков имеет смысл завести ограниченое число нитей, которые будут их перебирать и вычитывать данные.
- все равно нужна дополнительная "контрольная" нить, "которая будет их перебирать", т. е. что бы ни говорил Innate о пользе метода available, а задачу надо решать путем создания многопочного приложения (с "контрольной нитью" или без нее это уже детали зависящие от планируемой нагрузки). А многопоточное приложение работающее с потоками данных это классика программирования на Java, такой пример разбирается в каждой книжке по Java :)
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695272
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KachalovА многопоточное приложение работающее с потоками данных это классика программирования на Java, такой пример разбирается в каждой книжке по Java :)
Ну, так может многоуважаемый гуру подскажет нам название книжки и главу в которую смотреть?
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695468
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczНу, так может многоуважаемый гуру подскажет нам название книжки и главу в которую смотреть?
- не первый раз замечаю что Вы ко мне не ровно дышите (лично я себя "гуру" не считаю и встреваю в топики которые нтересны лично мне или где я, как мне кажется, могу быстро помочь человеку).

Blazkowicz - объясните причины личной неприязни, может мы с Вами встречались в "реале" (в Крыму я был неоднократно)? или это желание оставить последнее слово за собой (я на последнее слово не претендую - просто флуд раздражает)? или конкуренция в бизнесе? Не понимаю :(

На всякий случай, что бы прекратить дальнейший флуд, заявляю: единственный гуру на всех форумах по Java - это великолепный Blazkowicz.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695519
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalovобъясните причины личной неприязни
Никакой лично не приязни. Просто не приятно, когда тебя пытаются отослать к "каждой книжке по Java", при этом, естественно, если перечислять "каждую книжку по Java", окажется что не в каждой. А может даже и вообще ни в одной. Вот и хотелось бы услышать о какой книжке речь. С примером многопоточного чтения без блокировок на методе read.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695527
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov(лично я себя "гуру" не считаю и встреваю в топики которые нтересны лично мне или где я, как мне кажется, могу быстро помочь человеку).
Отсыл к "каждой книжке по Java" выдает в Вас гуру. Вы же всех их прочитали. Не скромничайте.
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34695695
Kachalov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczОтсыл к "каждой книжке по Java" выдает в Вас гуру. Вы же всех их прочитали. Не скромничайте.
По просьбам телезрителей:
Родли Джон "Создание Java-апплетов" "ДиаСофт Лтд." 1996г (ностальгия по апплетам)
стр. 178 глава "Ждать и уведомлять" (многопоточная загрузка большого количества картинок для апплета - тогда еще не было класса MediaTraker)

Джамса Крис "Библиотека программиста Java" "Попурри" 1997г
стр. 463 глава "Рассматриваем Two-Way Chat" (многопоточный сервер)

Чен М. "Программирование на Java: 1001 совет" "Попурри" 1997г
совет 845 (страницы не пронумерованы) "Реализация многопоточного сервера"
совет 846 "Почему клиенты должны быть многопоточными"

Вебер Д. "Технология Java в подлиннике" "BHV" 2000г
стр. 445 глава "Разработка сервера курса акций" (классический учебный многопоточный сервер)

Морган Майкл "Java 2. Руководство разработчика" "Вильямс" 2000г
стр. 439 глава "Использование клиентских и серверных объектов Socket" (учебный многопоточный сервер)

Второе издание Эккеля у меня увели (возможно там было то что нужно - не помню), а в третьем нет подходящего примера. Копаться в книгах типа Visual J++ (разных авторов) не стал. С какого то момента покупать книжки по основам программирования на Java перестал, так как не находил в них ничего нового, а полки не резиновые, хотя соблазн собрать коллекцию всего что выходит о Java был.

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

Не могу сказать что я "прочитал все книжки по Java", но сказать что прочитал все книжки по основам программирования на Java на русском языке с 1996 года по 2000г могу :) но при этом отнюдь не считаю себя гуру Java-программирования, ведь Java это океан знаний и врядли найдется программист знающий Java одинаково хорошо во всех ее проявлениях (SE, EE, ME + чудесные фреймворки + и т. д.)
...
Рейтинг: 0 / 0
InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
    #34702517
Innate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kachalov Blazkowicz
Показательный пример это задача чтения из большого количества потоков, данные на которые поступают крайне медленно. Для всех этих потоков имеет смысл завести ограниченое число нитей, которые будут их перебирать и вычитывать данные.
- все равно нужна дополнительная "контрольная" нить, "которая будет их перебирать", т. е. что бы ни говорил Innate о пользе метода available, а задачу надо решать путем создания многопочного приложения (с "контрольной нитью" или без нее это уже детали зависящие от планируемой нагрузки). А многопоточное приложение работающее с потоками данных это классика программирования на Java, такой пример разбирается в каждой книжке по Java :)

Все это верно. Только с блокировками придется создавать отдельную нить для чтения каждого потока, чтобы обрабатывать данные как можно раньше после их появления в потоке, что при большом количестве потоков не является хорошей идеей.
...
Рейтинг: 0 / 0
14 сообщений из 39, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / InputStream, сравнение версий 1.4.2, 1.5.0, 6.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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