꾸준히 안타치기

Java 쓰레드 사용법 본문

CS/JAVA

Java 쓰레드 사용법

글자줍기 2021. 1. 7. 12:49
반응형

쓰레드가 무엇일까?

실행되는 코드의 흐름 , 동작하는 시간의 흐름이 있는 독립적인 코드이다.

코드로 이루어진 명령문들이 동작하는 독립된 흐름의 단위, 동작이 실행되는 덩어리

 

 

한번에 여러 가지 코드를 동시에 동작하게 하게 하는것처럼 보이게 할수 있어서 사용

동시동작을 표현하고 싶을때 사용

 

쓰레드를 만드는 두 가지 방법

Thread >>Thread 클래스를 확장하는 클래스는 / 다른 클래스 상속을 받을 수 없다.

Runnable인터페이스를 구현은 -> 다른 클래스를 확장해야할때  사용한다.

 

(Runnable인터페이스란 몸체가 없는 메소드인 run() 메소드 단하나만을 가지는 인터페이스이다.)

interface뜻: 상호작용

 

오버라이딩이란(사전: 재정의하다.) 상속관계가 있는 클래스간에 같은 이름의 메소드를 정의 하는 것

 

* 하나의 쓰레드로 두 작업을 처리하는 경우 : 한 작업을 마친 후에 다른 작업을 시작하여 처리

* 두 개의 쓰레드로 작업을 처리하는 경우 : 짧은 시간동안 2개의 쓰레드가 번걸아 가면서 작업을 수행해서 동시에 두 작업이 처리되는 것 같이 느껴짐

 


 

1. Thread 클래스를 상속하는 법 (다른 클래스를 상속 받을수 없다. 단일상속원칙으로)

 

               [쓰레드구현클래스명]

public class ThreadSample extends Thread{ 

                                // Thread를 상속받는 ThreadSample이라는 클래스를 만든다.

public void run(){ 

 

// run메소드 안에 작업하고 싶은 내용을 작성한다. run메소드를 오버라이딩한다.

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

     System.out.printIn(getName()); 

        try{

           Thread.sleep(10);

         }catch(InterruptedException e){

             e.printStackTrace();

       }

}

  }

       }




public class Thread01{ // 쓰레드를 생성하는 클래스

      public static void main(String[] args){

ThreadSample thread1 = new ThreadSample();   // 쓰레드를 상속받은 클래스의 객체 생성

[쓰레드구현클래스명] [인스턴스이름] = new [쓰레드구현클래스명]

 

thread1.start(); // 스레드를 실행하는 메소드start() 실행

    [인스턴스이름]

     }

}




2. Runnable 인터페이스를 구현한 후에 / 쓰레드 객체를 통해 실행하는 방법

// 작업 클래스를 만들고 러너블 인터페이스를 구현

           public class ThreadSample2 implements Runnable{ //   ThreadSample2를 러너블 인터페이스로 구현

 

                        @Override

              public void run(){ 

// run메소드 안에 작업하고 싶은 내용을 작성한다. run메소드를 오버라이딩한다.

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

     System.out.println(getName()); 

        try{

           Thread.sleep(10);  

         }catch(InterruptedException e){

             e.printStackTrace();

       }

}

  }

      }

 

   public class Thread01{ // 쓰레드를 생성하는 클래스

  public static void main(String[] args){

 

          ThreadSample2 th2 = new ThreadSample2(); // 작업을 정의한 클래스의 객체를 생성

          Thread thread = new Thread(th2);

 

                                        // 쓰레드 클래스를 가지고 객체를 만들어서 인자로 th2를 넣어준다.

                                          이 쓰레드가 th2를 실행

                                        

                 thread. start();  // 스레드를 실행하는 스타트 메소드start() 실행

         }

               }

 

반응형

'CS > JAVA' 카테고리의 다른 글

if, 홀수 짝수/ 토글 on,off  (0) 2021.02.02
컴퓨터란?  (0) 2021.01.07
GUI / awt, swing 사용해 구현하기  (0) 2021.01.07
매개변수, 인자, 생성자  (0) 2021.01.07
상속  (0) 2021.01.07
Comments