전체 글(228)
-
[Java] 프로세스와 스레드 - 4
본 포스팅에서는 스레드의 상태와 스레드의 상태를 제어할 수 있는 메소드인 sleep, interrupt, join, yield에 대해 다룹니다. 스레드의 상태 스레드는 new키워드를 통해서 스레드 객체를 생성하면, start 메소드를 호출하여 실행 대기 상태로 넘어갈 수 있습니다. 이 후 실행 대기 상태의 스레드 중에서 스레드 스케줄링으로 특정 스레드가 선택되면, 그 스레드의 run 메서드를 실행합니다. 그리고 스레드의 run 메소드의 작업이 모두 끝나면 그 스레드는 종료하게 됩니다. 위의 내용을 그림으로 정리하면 아래와 같습니다. 또한, 스레드의 상태는 아래와 같이 사전 정의되어 있습니다. 스레드의 제어 스레드의 상태를 여러가지 메소드를 호출하여 제어할 수 있습니다. 스레드의 상태를 제어하는 여러 메소..
2024.02.17 -
[Java] 프로세스와 스레드 - 3
본 포스팅에서는 스레드를 만들고 실행할 때, 사용할 수 있는 부가적인 개념들에 대해 다룹니다. Daemon Thread 데몬 스레드는 "보이지 않는 곳에서 실행되는 낮은 우선순위의 스레드"입니다. 보이지 않는 곳이라는 것은 "background"프로세스로 실행된다는 것을 의미합니다. 데몬 프로세스에 대해서는 다른 게시물에 포스팅할 예정입니다. 데몬 스레드의 특징은 Main스레드가 종료되면 작업이 다 수행되지 않았더라도 같이 종료된다는 것입니다. 예제 코드는 아래와 같습니다. public class Main { public static void main(String[] args) { Runnable demon = () -> { for (int i = 0; i < 1000000; i++) { System.o..
2024.02.17 -
[Java] 프로세스와 스레드 - 2
본 포스팅에서는 Thread를 java에서 어떻게 생성할 수 있는지에 대해 다룹니다. Thread 가장 기본적인 방법으로 Thread 클래스를 상속받아 스레드를 만들 수 있습니다. 예제 코드는 아래와 같습니다. 스레드를 new를 통해서 생성한 후, start메서드를 호출하면 스레드가 실행되고, run메서드를 호출하게됩니다. public class TestThread extends Thread { @Override public void run() { // 쓰레드 수행작업 } } ... TestThread thread = new TestThread(); // 쓰레드 생성 thread.start() // 쓰레드 실행 Runnable Thread보다 널리, 많이 쓰이는 방법으로 Runnable 인터페이스를 이용..
2024.02.17 -
[Java] 프로세스와 스레드 - 1
본 포스팅은 프로세스와 스레드에 대해 다룹니다. 프로세스는 "실행 중인 프로그램"을 의미합니다. 카카오톡, 크롬 브라우저 등도 모두 프로세스라고 할 수 있습니다. 운영체제(OS)에서는 프로세스를 할당할 때, 프로세스에 code, data, 메모리 영역(Stack, Heap)을 함께 할당해줍니다. 각각의 간단한 설명은 아래와 같습니다. 1. Code 는 Java main 메소드와 같은 코드를 말합니다. 2. Data 는 프로그램이 실행중 저장 할 수 있는 저장공간을 의미합니다. 1. 전역변수, 정적변수(static), 배열등 초기화된 데이터를 저장하는 공간 3. Memory (메모리 영역) - Stack : 지역변수, 매개변수 리턴 변수를 저장하는 공간 - Heap : 프로그램이 동적으로 필요한 변수를 저..
2024.02.17 -
[Java] 상속
본 포스팅은 Java에서 등장하는 상속의 개념과 특징 그리고 오버라이딩, 다형성, 추상 클래스에 관해 다룹니다. 상속 상속은 부모 클래스의 필드와 메서드를 자식 클래스가 이용할 수 있도록 하는 것을 말합니다. 아래와 같이 부모 클래스를 상속할 수 있습니다. 자식 클래스에서 부모 클래스의 필드를 이용하려면 super를 사용하면 됩니다. public class SportsCar extends Car{ } 오버라이딩 오버라이딩은 자식 클래스가 부모의 필드와 메서드를 다시 재정의하여 사용하는 것을 말합니다. 아래와 같이 오버라이딩 할 수 있습니다. public class Car { String company; // 자동차 회사 private String model; // 자동차 모델 private String ..
2024.02.07 -
[Java] Class
본 포스팅은 Java에서 필수적인 요소인 Class의 개념과 여러 요소에 대해 다룹니다. Java는 모든 것이 클래스로 이루어져있는 클래스의 집합체라고해도 과언이 아닙니다. 따라서 클래스의 개념과 특징에 대해 잘 알아보는 것은 중요하다고 할 수 있습니다. 클래스 설계 클래스를 만들기 위해선 4가지 절차를 거칩니다. 클래스 선언: 만들고자 하는 클래스 파일을 만들고 클래스를 선언합니다. 필드 정의: 클래스가 만든 객체(인스턴스)가 가져야할 필드를 정의합니다. 생성자 정의: 객체를 생성하는 생성자를 정의합니다. -> 생성자를 정의하지않으면 기본 생성자를 Java compiler가 작성하여줍니다. 메서드 정의: 객체가 가지고있어야할 메서드를 정의합니다. 생성자 생성자는 클래스가 선언될 때, 초기화하는 역할을 ..
2024.02.07