본문 바로가기

자바 DB 연동/쓰레드

자바 쓰레드

package com.test0614;


// 스레드 : 작업스케줄에 의해 CPU 시간을 할당 받아 일을 할 수 있는 가장 작은 단위. 즉 자바 VM에 의해 호출 되어짐

// 일반 메소드 : 프로그래머에 의해 호출

// main 메소드 : 프로그램 시작점


// 스레드 작성 첫번째 방법

// 1. Thread 클래스를 상속 받는 클래스를 만든다.

// 2. public void run() {} 메소드를 정의 한다.

// 3. Thread 클래스를 상속받는 클래스의 객체를 생성한다.

// 4. start() 메소드로 스레드를 시작한다.


class Demo6 extends Thread {

public void run() {

for(int i=1; i<=10; i++){

System.out.println("스레드 : " + i);

try{

sleep(100); // 지정시간(ms) 동안 실행 중지

}catch (Exception e){

}

}

}

}


// 스레드를 만드는 두번째 방법

// 1.Runnable 인터페이스를 구현한 클래스를 만든다. -> 구현클래스에 public void run(){}을 재정의 한다.

// 2.Runnable 인터페이스를 구현한 클래스 객체를 만든다. => 이부분은 생략하고 바로 생성자를 Threa 생성자에 넘겨도 상관없다.

// 3.Thread 객체를 생성하며 생성할 때 생성자에 Runnable 인터페이스를 구현한 클래스 객체를 인자로 넘긴다.

// 4.Thread 객체로 start() 메소드를 호출하여 스레드를 시작한다

class Ex6 implements Runnable{

public void run(){

for(int i=1; i<=10; i++){

System.out.println("두번째 방법 : "+i);

try{

Thread.sleep(50);

}catch(Exception e){

}

}

}

}


/*

 *  독립적인 스레드에서는 메인이 프로그램의 시작점이지만 종료는 아니다. 모든 독립 스레드가 종료 되어야 프로그램이 종료된다.

 */

// 이프로그램은 메인 스레드와 두개의 독립 스레드로 구성됨

public class Test6 {

public static void main(String[] args) {

Demo6 ob=new Demo6();

Thread t=new Thread(new Ex6());

System.out.println("스레드를 시작한다....");

ob.start();

t.start();

System.out.println("메인의 끝이다...");

}

}