Я использую потоки много раз, но я никогда не читал много о том, как они на самом деле работают. Я также не знаю много о них, кроме того, что поток - это всего лишь метафора. Поток представляет только последовательность байтов. Я не знаю много о том, как они на самом деле работают, я предполагаю, что открытие потока файлов в Java взаимодействует с ОС, которые имеют функциональность, чтобы дать «указатель» на поток.Как потоки в Java влияют на потребление памяти?
В основном, мой вопрос заключается в том, как потоки влияют на потребление памяти. Когда у вас есть, например, поток ввода и вы начинаете читать с него, вы только начинаете увеличивать потребление памяти с количеством прочитанных байтов? При открытии потока в Java вы фактически не загружаете полный файл перед началом чтения? Если вы читаете из одного потока и напрямую пишете в другой поток, вы увеличиваете объем памяти только с объемом прочитанных байтов (и, возможно, в буфере)? Если вы читаете байты в байтовый массив в java, то вы увеличиваете потребление памяти с размером файла?
Может показаться странным вопросом, но мне может понадобиться какое-то руководство/исправление в моем понимании. Благодарю.
У вас есть очень хорошее объяснение [здесь] (http://www.ibm.com/developerworks/library/j-zerocopy/index.html) нулевой копии. Также он объясняет использование буферов и памяти. –