Development/Java(853)
-
스레드 상태제어, 스레드 상태제어 메소드, 스레드 상태제어 메소드 도식도
스레드 상태제어 · 실행 중인 스레드의 상태를 변경하는 것을 스레드 상태 제어라고 합니다. · 멀티 스레드 프로그램을 만들기 위해서는 정교한 스레드 상태 제어가 필요합니다. 적절한 상태가 이루어지지 않으면 프로그램은 불안정해지거나 먹통이 되거나 다운됩니다. · 그래서, 스레드는 잘 사용하면 약이 되지만 잘못 사용하면 치명적인 프로그램의 버그가 됩니다. · 스레드 제어를 제대로 하려면 스레드의 상태 변화를 일으키는 메소드들을 잘 알아야 합니다. 스레드 상태제어 메소드 wait(), notify(), notifyAll()메소드는 Object클래스의 메소드이고, 그 이외의 메소드는 모두 Thread클래스의 메소드들입니다.
-
Thread life cycle(스레드의 생명주기)
스레드의 생명주기스레드는 Thread 객체가 생성되면 생명주기를 갖게 되는데 크게 5가지로 나누게 됩니다.
-
인터페이스간의 상속
인터페이스간의 상속 인터페이스 내에는 상수 또는 동작부분을 구현하지 않은 추상 메서드들이 정의됩니다. 그러므로 인터페이스를 구현(implements)하겠다고 명시한 일반 클래스에서 원하는 형태로 꼭 구현해주어야 됩니다. 실제 구현하는 부분이 없는 인터페이스들 간의 상속에서는 다중 상속을 할수 있습니다 인터페이스 간 상속 선언 [접근제한] interface [인터페이스명] extends 부모인터페이스명1, 부모인터페이스명2, …, 부모인터페이스명n { 상수; 추상메서드; } 추상 메소드 구현 추상메소드는 해당 인터페이스가 다른 인터페이스로부터 상속을 받았지만 Overriding을 할 수는 없습니다. 왜냐하면 인터페이스는 body({ })를 가지는 일반 메서드를 포함할 수 없습니다. 그러므로 상속을 받은 자..
-
process & thread - 프로세스(Process), 프로세스의 다른 정의들, 프로세스 종류, 실행파일 vs 프로세스
실행파일 vs 프로세스 실행파일notepad.exe 이름을 가진 파일 프로세스실행파일이 실행되어 메모리에 적재된 인스턴스
-
스케줄링(Scheduling), 선점형 스케줄링 (Preemptive Scheduling), 비선점형 스케줄링 (Non-preemptive Scheduling)
스케줄링(Scheduling)스케줄링은 다중 프로그래밍을 가능하게 하는 운영 체제의 동작 기법입니다. 선점형 스케줄링 (Preemptive Scheduling)· 어떤 프로세스가 CPU를 사용하고 있는 동안 다른 프로세스에 의해 그 CPU의 사용을 선점당할 수 있는 스케줄링 방식(하나의 프로세스가 다른 프로세스 대신에 프로세서(CPU)를 차지할수 있는 방식)입니다.· 모든 프로세스에게 CPU 사용 시간을 동일하게 부여할 수 있습니다. · 빠른 응답시간을 요하는 대화식 시분할 시스템에 적합하며 긴급한 프로세서를 제어할 수 있습니다. · '운영 체제가 프로세서 자원을 선점'하고 있다가 각 프로세스의 요청이 있을 때 특정 요건들을 기준으로 자원을 배분하는 방식입니다. 비선점형 스케줄링 (Non-preempti..
-
Thread Name(스레드 이름)
Thread Name(스레드 이름)· 스레드는 이름을 통해 특별한 기능을 하는 것은 아니지만 자신의 이름을 가지고 있습니다.· 디버깅할 때 어떤 스레드가 어떤 작업을 하는지 분석하기 위한 목적으로 활용이 되는 것이 일반적입니다.· 메인 스레드는 main이라는 이름을 가지고 있고, 직접 생성한 스레드는 직접 이름을 부여하지 않으면 자동적으로 Thread-n이라는 이름으로 지정됩니다. 메소드 설명 setName() · 인스턴스 메소드 · 스레드 이름 설정 또는 변경 getName() · 인스턴스 메소드 · 스레드 이름 가져오기 Thread.currentThread() · 정적 메소드 · 코드를 실행하는 현재 스레드의 레퍼런스 얻어오기