Skip to content

Latest commit

 

History

History
67 lines (58 loc) · 3.25 KB

File metadata and controls

67 lines (58 loc) · 3.25 KB

File Class

  • File의 개념을 추상화한 Class이다.
  • 별도의 입출력 기능은 구현되지 않앗으며, 파일의 속성, 경로 및 이름 등을 알 수 있다.

RandomAccessFile Class

  • 입출력 Class 중 유일하게 File 입출력을 동시에 진행할 수 있는 Class이다.
  • File Pointer가 존재하여 읽고 스는 위치의 이동이 가능하다.
  • 다양한 자료형에 대한 메소드가 제공된다.
  • RandomAccessFile Class
public class RandomAccessFileTest   {
  public static void main(String[] args)  {
    RandomAccessFile rf = new RandomAccessFile("random.txt", "rw");   // Constructor(String, String) 사용
    rf.writeInt(1234);
    System.out.println(rf.getFilePointer());
    rf.writeDouble(3.1415);
    rf.writeUTF("Hello World!");
    
    rf.seek(0);   // File Pointer를 첫번째 자리로 위치시켜주는 메소드
    // 위의 메소드를 사용하지 않는 경우 EOFException이 발생한다.
    // File Pointer가 마지막에 적어준 '!'다음에 위치하기 때문이다.
    
    int i = rf.readInt();
    double d = rf.readDouble();
    String str = rf.readUTF();
    
    System.out.println(i);    // 1234
    System.out.println(d);    // 3.1415
    System.out.println(str);  // Hello World!
    
    rf.close();
  }
}

Decorator Pattern

  • Java의 입출력 스트림은 Decorator Pattern을 사용한다.
  • 실제 입출력 기능을 가진 객체(Component)와 그 외 다양한 기능을 제공하는 Decorator(보조 스트림)을 사용하여 다양한 입출력 기능을 구현한다.
  • 상속보다 확장성에서 유연하다.
  • 지속적인 서비스의 증가와 제거가 용이하다.

image

Process & Thread

Process

  • OS로부터 자원을 할당받은 작업의 단위
  • Process의 상태
    • Create : Process 생성
    • Running : Process 실행
      (CPU에 메모리 공간을 할당받아 실행하는 상태, Processor가 n개인 경우 n개의 Process를 동시에 실행할 수 있다.)
      (CPU에서 말하는 Octa Core, Dual Core등 에서 말하는 Core가 Processor에 해당한다.)
    • Ready : Process 실행 준비
      (CPU를 사용하여 실행되고 있지는 않지만 CPU의 할당을 기다리고 있는 상태, 여러 프로세스들이 존재 할 수 있다.)
    • Waiting(Block) : Process 대기
    • Terminated : Process 종료
  • Process의 상태전이
    • Dispatch : ready -> running
      (대기열에 가장 앞에 있던 Process가 CPU를 할당받는 상태)
    • Block : running -> blocked
      (실행 중이던 Process가 Interrupt가 발생하여 대기중인 상태)
    • WakeUp : blocked -> ready
      (Interrupt가 발생하여 대기 중인 상태에서 CPU가 할당되어 실행되는 상태)
    • Timeout : running -> ready
      (특정 Process의 독점을 방지하기 위해 Clock Interrupt를 설정한다. 이 시간이 지나게 되어 CPU의 할당이 끝나고 다시 CPU의 할당을 기다리는 상태)

Thread

  • Process내에서 실행되는 흐름의 단위