목차
- 자바 소스 코드 컴파일 명령 javac 예제 이전 포스팅
- 자바 화면 출력 메소드 System.out.println 예제 이전 포스팅
- 자바 정수 변수 선언 및 카운팅 증가시키기 예제 이전 포스팅
- 자바 스레드 생성 및 Runnable 선언 예제
- 자바 스레드 시작 및 출력 예제(start)
자바 소스 코드 컴파일 명령 javac 예제 이전 포스팅
오늘 다룰 포스팅 주제는 자바에서 스레드를 다루는 방법입니다. 스레드란 독립적인 처리 단위입니다. 즉, 우리가 어떠한 프로그램이 동작하면 메인 프로세스가 1개 생성됩니다. 이 프로세스는 곧 메인 스레드라고도 부릅니다. 1개의 처리만 할 수 있는 것이지요. 하지만, 우리가 어떠한 일을 1개만 동시에 처리할 수 있다면 프로그램 너~무 느리고 비효율적일 것입니다. 따라서 멀티 스레딩 모델의 프로그램이 나와 1개 일을 처리하면서 다른 일을 동시에 처리할 수 있게 진화한것입니다.
오늘 예제는 이러한 병렬 처리를 지원하기 위해 스레드를 사용하는 방법에 대해 알아보겠습니다. 오늘 예제 소스 코드를 컴파일하여 실행해보기 위해 javac 명령 사용법을 익혀주세요. 아래는 해당 예제 포스팅 링크입니다.
2023.08.10 - [Linux] - [Linux/Java] 리눅스 우분투에서 java 컴파일 및 실행 예제(javac)
자바 화면 출력 메소드 System.out.println 예제 이전 포스팅
오늘 예제가 정상적으로 실행되는지 확인하기 위해 System.out.println 메소드를 사용하겠습니다. 각 스레드가 자신의 메세지를 출력할 때 다른 스레드의 메세지가 어떻게 출력되는지 확인할 수 있습니다. 해당 메소드 사용방법을 아직 모르신다면 아래 링크를 통해 확인해주세요.
2023.08.11 - [Java] - [Java/Linux] System.out.println 문자열 출력 및 활용 예제(개행 및 정수 출력)
자바 정수 변수 선언 및 카운팅 증가시키기 예제 이전 포스팅
마지막으로 스레드의 메세지를 그냥 출력하는게 아니라 메세지에 정수 변수를 포함시켜 1씩 증가시키는 카운팅을 출력해보겠습니다. 이를 위해서는 int 형 정수 변수 선언 방법과 값을 저장시키는 방법에 대해 알아야합니다.
아래의 이전 포스팅 링크를 참고하여 학습해주세요.
2023.08.11 - [Java] - [Java/Linux] int, String 등 변수 크기 및 선언 예제
자바 스레드 생성 및 Runnable 선언 예제
아래는 자바에서 스레드 및 Runnable을 생성하는 예제입니다. Runnable에 스레드가 처리해야할 일들을 구현할 수 있습니다.
public class Example {
public static void main(String[] args) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("Thread 1: " + i);
}
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("Thread 2: " + i);
}
}
});
System.out.println("thread create ok");
}
}
자바 스레드 시작 및 출력 예제(start)
아래는 자바에서 스레드를 시작시키고 결과를 출력한 예제입니다.
public class Example {
public static void main(String[] args) {
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("Thread 1: " + i);
}
}
});
Thread thread2 = new Thread(new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
System.out.println("Thread 2: " + i);
}
}
});
thread1.start(); // 첫 번째 스레드 시작
thread2.start(); // 두 번째 스레드 시작
}
}