Home >Java >javaTutorial >Why is java io important?

Why is java io important?

(*-*)浩
(*-*)浩Original
2019-05-29 16:59:212466browse

Java's IO stream is the basis for realizing input/output. It can easily implement data input/output operations. Different input/output sources are abstractly expressed as "streams" in Java.

A stream is a set of ordered bytes and is a general term or abstraction for data transmission.

Streams have input and output. During input, the stream flows from the data source to the program. When outputting, the stream is transferred from the program to the data source, and the data source can be memory, file, network or program, etc.

Why is java io important?

User process and operating system kernel

The IO in Java can be understood as being between the Java program and the operating system kernel. between objects.
The blocking and non-blocking, synchronization and asynchronous mentioned later are the result of the interaction between these two objects. In this article, the user process refers to the Java program.

Program space and kernel space

Waiting for the data to be ready(waiting for the data to arrive in the kernel buffer)

Copying the data from the kernel to the process (copy data from kernel buffer to program buffer)

In Linux, for a read IO operation, the data will not be copied directly to the program buffer of the program.

It will first be copied to the buffer of the operating system kernel, and then copied from the buffer of the operating system kernel to the buffer of the application.

Program space: The memory space allocated to user programs.

Kernel space: The memory space owned by the kernel.

Blocking and non-blocking

Blocking: After the user process makes a system call, the user process is always in a locked state and cannot perform other operations

Non Blocking: After the user process makes a system call, the user process is not locked and can perform other operations

Blocking and non-blocking refer to the status of the user process, that is, whether the user process is locked

Synchronous and asynchronous

A synchronous I/O operation causes the requesting process to be blocked until that I/O operation completes.
An asynchronous I/O operation does not cause the requesting process to be blocked.

A synchronous io operation will cause the requesting process to block until the io operation is completed. An asynchronous IO operation will not cause the requesting thread to be blocked.

Synchronization: The user thread and the io thread do the same thing (the user thread is blocked, waiting for the kernel to return the processing result)

Asynchronous: The user thread and the io thread do different things (the user thread does not Blocked, do other things, the kernel processing is completed and the results are sent to the user thread)

File descriptor

Everything is a file under Linux. A file descriptor is an index created by the kernel for a file. All I/O operations are performed by calling the file descriptor (index), including the socket we will mention below. When Linux first starts, it will automatically set 0 as standard input, 1 as standard output, and 2 as standard error.

The above is the detailed content of Why is java io important?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn