В последние дни я читал о потоках в Java. Прочитав немного, я начинаю понимать, что название «поток» было выбрано из-за сходства с тем, о чем мы используем слово в «реальной жизни», такой как вода. И что нет необходимости знать, откуда поступают данные. Пожалуйста, исправьте, если я неверно истолковал это.
Но я не понимаю этого. Например, когда я говорю getOutputStream
или getInputStream
в сокете, я получаю InputStream
, который я могу связать с любыми вещами. Но не являются ли InputStream / OutputStream абстрактными классами? Я не знаю точно, как объяснить это правильно, но я не понимаю, что соединение с сокетом, просто вызывая этот метод, автоматически имеет поток / канал, по которому могут передаваться байты / символы? Что на самом деле является InputStream / OutputStream? Являются ли потоки способом абстрагирования реальных источников?
Я думаю, что понимаю различные способы их объединения, однако чувствую, что упускаю суть концепции.
В отсутствие надлежащего способа объяснения я удалю вопрос, если это плохо.
Спасибо за ваше время.