| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > OutputStream |
| Автор: val 17.5.2007, 13:13 |
| Привет, всем. Можно ли из разных потоков писать в один и тот же OutputStream без выполнения синхронизации... |
| Автор: tipoc 17.5.2007, 23:38 |
| Очевидно нет. Объект то один, а потоков, которые работают с этим объектом - два. Хотя если методы, которые ты будешь вызывать у объекта OutputStream, каким-то образом уже синхронизированы, то синхронизация не потребуется. |
| Автор: ekr 17.5.2007, 23:44 | ||||
| ))) Вспоминается старый анекдот: -Па, а эти грибы можно есть? -Можно, сынок, можно. Только умрешь потом...
Можно ))) Только данные могут попасть в поток не в том порядке, в каком предполагалось )
Ну почему же? Попробуйте для иллюстрации из двух потоков писать в консоль... Все работает. |
| Автор: tipoc 18.5.2007, 00:17 | ||
Не факт, что будет всегда корректно выводить данные. Зависит от реализации потока OutputStream. Хотя в большинстве случаев подозреваю будет работать корректно. |
| Автор: ekr 18.5.2007, 00:25 | ||
Да, я тоже так считаю. Окончательно ситуацию может прояснить исходник класса. Есть ли у используемого XXXOutputStream модификаторы synchronized для методов или synchronized-секции внутри оных. |
| Автор: ekr 18.5.2007, 00:47 | ||||
пропустит )
просто четко надо понимать возможные последствия несинхронизированной записи |
| Автор: Samotnik 18.5.2007, 00:58 | ||
Ну оно конечно так, всегда нуна представлять че будет при написании данного кода. Но иногда сидиш продумываеш, пишишь, затем запускаеш, а на экране или беконечный цикл или ексепшены выскакивают один за другим. Или еще какая нить хрень. Вод для этого и следует читать разделы "хороший стиль программирования", т.к. у людей это все было и они могут че нить дельное посоветывать!!!! |