투케이2K
61. (java/자바) 스레드(thread) - 스레드(thread)를 사용해 for문 합계 계산 실시 본문
/* =========================== */
[ 개발 환경 설정 ]
개발 툴 : Eclipse
개발 언어 : Java
/* =========================== */
/* =========================== */
[소스 코드]
package AI2;
class T_Thread_Task extends Thread {
@Override
public void run() {
int task_sum = 0;
for (int i = 1; i <= 5; i++) {
task_sum += i;
}
System.out.println("[클래스] Thread 합계 : " + task_sum);
}
}//Thread 클래스 종료
class R_Thread_Task implements Runnable {
@Override
public void run() {
int task_sum = 0;
for (int i = 1; i <= 5; i++) {
task_sum += i;
}
System.out.println("[클래스] Runnable 합계 : " + task_sum);
}
}//Runnable 클래스 종료
public class MainActivity9 {
//초기 합계를 저장하는 변수를 선언해줍니다
static int thread_sum = 0;
static int runnable_sum = 0;
static int main_sum = 0;
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("[스레드(thread) - 스레드(thread)를 사용해 for문 합계 계산 실시]");
/*[설 명]
* 1. 일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행합니다
* 2. 스레드 (thread) - 스레드란 프로세스내에서 실제로 작업을 수행하는 주체를 의미합니다
* 모든 프로세스(main)에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다(main실행)
* 3. 멀티 스레드(multi thread) - 하나의 프로세스(main) 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미합니다
* (main 외 스레드 객체 생성 및 실행)
* 4. 특 징 - 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유하므로, 시스템 자원의 낭비가 적습니다
* 하나의 스레드가 작업을 할 때 다른 스레드가 별도의 작업을 할 수 있어 사용자와의 응답성도 좋습니다
* 5. 생 성 - Runnable 인터페이스 구현, Thread 클래스를 상속으로 2가지 방법으로 사용하실 수 있습니다
* (클래스 방식 - 외부 클래스를 따로 생성해서 작업단위 작성 / 익명 방식 - 내부에서 객체 생성 및 작업단위 작성)
*/
//TODO ==== Thread 스레드 클래스 방식 생성 및 실행 ====
Thread T_Thread_Task = new T_Thread_Task(); //Task 클래스 객체 생성
T_Thread_Task.start();
//TODO ==== Runnable 인터페이스 클래스 방식 생성 및 실행 ====
Runnable R_Thread_Task = new R_Thread_Task(); //Task 클래스 객체 생성
Thread R_Thread_Task_Run = new Thread(R_Thread_Task);
R_Thread_Task_Run.start();
//TODO ==== Thread 스레드 익명 객체 생성 및 실행 ====
Thread T_thread = new Thread() {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
thread_sum += i; //합계를 계속 더한다
}
System.out.println("[익명] Thread 합계 : " + thread_sum);
}
};
T_thread.start();
//TODO ==== Runnable 인터페이스 익명 구현 및 스레드 실행 ====
Runnable R_Runnable = new Runnable() {
@Override
public void run() {
for (int i = 1; i <= 5; i++) {
runnable_sum += i; //합계를 계속 더한다
}
System.out.println("[익명] Runnable 합계 : " + runnable_sum);
}
};
Thread R_thread = new Thread(R_Runnable);
R_thread.start();
//TODO ==== 기본 클래스 main메소드 for문 수행 ====
for (int i = 1; i <= 5; i++) {
main_sum += i; //합계를 계속 더한다
}
System.out.println("[익명] main 합계 : " + main_sum);
}//메인 종료
}//클래스 종료
/* =========================== */
[결과 출력]
[스레드(thread) - 스레드(thread)를 사용해 for문 합계 계산 실시]
[클래스] Thread 합계 : 15
[클래스] Runnable 합계 : 15
[익명] Thread 합계 : 15
[익명] main 합계 : 15
[익명] Runnable 합계 : 15
/* =========================== */
/* =========================== */
[요약 설명]
* 1. 일반적으로 하나의 프로세스는 하나의 스레드를 가지고 작업을 수행합니다
* 2. 스레드 (thread) - 스레드란 프로세스내에서 실제로 작업을 수행하는 주체를 의미합니다
모든 프로세스(main)에는 한 개 이상의 스레드가 존재하여 작업을 수행합니다(main실행)
* 3. 멀티 스레드(multi thread) - 하나의 프로세스(main) 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것을 의미
(main 외 스레드 객체 생성 및 실행)
* 4. 특 징 - 멀티 스레드는 각 스레드가 자신이 속한 프로세스의 메모리를 공유하므로, 시스템 자원의 낭비가 적습니다
하나의 스레드가 작업을 할 때 다른 스레드가 별도의 작업을 할 수 있어 사용자와의 응답성도 좋습니다
* 5. 생 성 - Runnable 인터페이스 구현, Thread 클래스를 상속으로 2가지 방법으로 사용하실 수 있습니다
(클래스 방식 - 외부 클래스를 따로 생성해서 작업단위 작성 / 익명 방식 - 내부에서 객체 생성 및 작업단위 작성)
/* =========================== */