오전
프로세스란 ?
단순하게 말하자면 현재 실행중인 프로그램이다.
사용자가 작성한 프로그램이 메모리 공간을 할당받아 실행 중인 것.
이런 프로세스에는 데이터 , 메모리 등의 자원 그리고 스레드로 구성됨
스레드란?
프로세스 내에서 작업을 수행하는 주체를 말한다.
모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다.
스레드가 하나일 때는 싱글스레드, 2개 이상일 때는 멀티스레드 라고한다.
(스레드를 예로 들어보자면 가게에서 역할을 분담해서 일을 하는 사람 객체 하나 하나를 스레드라고 보면 될 것 같다.)
스레드의 생성과 실행
스레드를 생성하는 방법에는 두가지 방법이 있다.
- Runnable 인터페이스를 구현하는 법
- Thread 클래스를 상속받는 법
스레드의 메서드
Thread.sleep(10); : 0.01 초간 스레드를 멈춘다
※ Thread 클래스를 상속받으면 다른 클래스를 상속을 못받아서 일반적으로 Runnable 인터페이스를 구현하는 방법으로 스레드를 생성한다.
(Runnable 인터페이스는 run() 추상메소드 하나만을 가지고있는 함수형 인터페이스이다.)
리플렉터란?
실행중인 프로그램의 클래스, 인터페이스 , 메서드 ,필드 등의 정보를 동적으로 얻고 조작할 수 있는 기능을 제공하는 API
동적 바인딩 , 정적 바인딩 ?
※ 바인딩이란 ? 프로그램 구성요소의 실제 값 또는 프로퍼티를 결정짓는 행위 (간단히 값을 설정하는 행위를 바인딩이라고 생각하자.)
- 동적 바인딩 :
- 실행시간(런타임) 에 결정
- 오버라이딩
- 늦은 바인딩이라고도 부른다.
- 정적 바인딩 :
- 프로그램이 실행되도 변하지 않는다
- 오버로딩
- private , final , static 이 붙은 메서드
정적 바인딩의 대표 예시 : 오버로딩
Compile 과정에서 어떤 메서드를 호출할지 결정하기 때문에 코드 작성을 하는 단계에서 사용할 메서드를 구분하고 사용이 안될경우 컴파일 에러
를 발생시킨다.
동적 바인딩의 대표 예시 : 오버라이딩
예를 들어 부모에서 정의한 메서드를 자식에서 Overriding 했다 가정했을 때 그 메서드를 이용할 때 Runtime (실행시에) 어떤 메서드를 호출할지 결정한다.
리플렉션은 생성자 , 메서드, 필드 등 클래스에 대한 정보를 아주 자세히 알아낼 수 있다.
'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글
24년 10월 7일 (0) | 2024.10.09 |
---|---|
24년 10월 4일 (0) | 2024.10.08 |
24년 10월 1일 (6) | 2024.10.07 |
24년 09월 30일 (1) | 2024.10.03 |
24년 09월 27일 (1) | 2024.10.03 |