자바 쓰레드

BackEnd_Ash.log·2022년 11월 29일
0

자바스터디

목록 보기
3/19

http://www.tcpschool.com/java/java_thread_concept

프로세스란 단순히 실행 중인 프로그램 이라고 할 수 있다.
즉 , 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다.

스레드란

스레드란 프로세스 내에서 실제로 작업을 수행하는 주체를 의미한다.

자바에서 스레드 생성하는방법은 두가지가 존재한다.
한가지는 extends Thread 로 인해서 상속 받는방법이고 ,
다른 하나는 Runnable 인터페이스를 구현하는 방법이다.

두 방법 모두 쓰레드를 통해 작업하고 싶은 내용을 run() 메소드에 작성하면 된다.

class ThreadWithClass extends Thread {

    public void run() {

        for (int i = 0; i < 5; i++) {

            System.out.println(getName()); // 현재 실행 중인 스레드의 이름을 반환함.

            try {

                Thread.sleep(10);          // 0.01초간 스레드를 멈춤.

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

}

 

class ThreadWithRunnable implements Runnable {

    public void run() {

        for (int i = 0; i < 5; i++) {

            System.out.println(Thread.currentThread().getName()); // 현재 실행 중인 스레드의 이름을 반환함.

            try {

                Thread.sleep(10);

            } catch (InterruptedException e) {

                e.printStackTrace();

            }

        }

    }

}

 

public class Thread01 {

    public static void main(String[] args){

        ThreadWithClass thread1 = new ThreadWithClass();       // Thread 클래스를 상속받는 방법

        Thread thread2 = new Thread(new ThreadWithRunnable()); // Runnable 인터페이스를 구현하는 방법

 

        thread1.start(); // 스레드의 실행

        thread2.start(); // 스레드의 실행

    }

}

자바에서 각 스레드는 우선순위에 관한 자신만의 필드를 가지고 있다.

스레드의 우선 순위

스레드의 우선순위는 비례적인 절대값이 아닌 어디까지나 상대적인 값이다.
단지 우선순위가 10인 스레드는 우선순위가 1인 스레드보다 좀 더 많이 실행 큐에 포함되어, 좀 더 많은 작업 시간을 할당받을 뿐입니다.

profile
꾸준함이란 ... ?

0개의 댓글