JAVA :: 자바 스레드(1)

s_omi·2021년 2월 20일
1

JAVA (자바)

목록 보기
32/62
post-thumbnail
post-custom-banner

📝 자바 스레드

💬 스레드(태스크) : 운영 체제(자바에선 자바 가상기계가 함)에 의해 관리되는 하나의 작업

💬 멀티스레딩 : 다수의 스레드를 동시에 실행시키도록 응용프로그램을 작성하는 기법

💬 JVM : 자바에서 스레드가 몇 개 존재하는 지 등과 같은 정보와 스레드 스케줄링을 맡으며, 스레드를 관리한다.


📝 자바 스레드 만들기

ㆍThread 클래스 이용
ㆍRunnable 인터페이스 이용

💡 Thread 클래스 (ex. 타이머 스레드 만들기)

💬 주요 메소드

💬 Thread 클래스를 상속받아 클래스를 작성하고, 스레드가 수행할 작업 코드를 스레드 코드에 작성 후 오버라이딩한다.

class TimerThread extends Thread { // Thread 클래스를 상속받은 TimeThread 클래스
    ...
    public void run() { // Thread 클래스의 run() 오버라이딩 (run()이 스레드 코드)
        ... 
    }
}    

💬 스레드 객체 생성

TimeThread th = new TimeThread(); // 스레드 객체 생성

💬 스레드 실행

th.start(); // Thread 클래스의 start() 메소드를 호출하여 스레드를 실행시킴
⚠ start() 메소드는 개발자가 절대 오버라이딩하면 안된다.

💡 Runnable 인터페이스

💬 스레드 클래스 선언 : Runnable 인터페이스 구현

class TimerRunnable implements Runnable { // Runnable 인터페이스를 구현한 TimerRunner 클래스
    ...
    public void run() { // 스레드 코드 구현
        ... 
    }
}    

💬 스레드 객체 생성

Thread th = new Thread(new TimerRunnable()); 

TimerRunnable의 인스턴스를 생성하고, Thread 클래스의 생성자에 전달 (start() 메소드가 Thread 클래스에 있으므로)

💬 스레드 실행

th.start();

➕ main 스레드

💬 JVM은 자바 응용프로그램을 실행하기 직전, 스레드를 하나 생성하고, 메인 스레드로 하여금 main() 메소드를 실행하도록 한다.

profile
공부한 거 올려요 :)
post-custom-banner

0개의 댓글