스레드(thread)
- java.lang 패키지에 있는 클래스
- 프로그램의 실행흐름을 의미하는 것으로 일반적으로 main()메소드를 시작으로 하나의 흐름으로 진행됩니다.
- 두 개이상의 흐름을 작업하면 멀티스레드라 하여 각 실행 흐름을 제어합니다.
.
.
예제
class ShowThread extends Thread{
//Thread클래스를 상속받음으로써 ShowThread클래스는 하나의 쓰레드로 동작할 수 있음
String threadName;
public ShowThread(String name){
threadName = name;
}
public void run(){
// Thread클래스의 메소드로 오버라이딩하여 작업해야 함
// 실제 현 스레드에서 해야 할 작업을 구현해 놓는 메소드
// start()메소드가 아닌 직접 호출하게 되면 동작은 가능하나 스레드로서 동작하진 않습니다.
for (int i = 0 ; i < 10 ; i++ )
{
System.out.println("안녕하세요. " + threadName + "입니다.");
try
{
sleep(10);
// 0.01초 동안 일시 멈춤(다른 쓰레드가 동작하도록)
// InterruptedException을 처리해야 하는 메소드
}catch (InterruptedException e){ // Exception e 로 해도 상관없음
e.printStackTrace();
//System.out.println("ShowThread에서 문제 발생");
}
}
}
}
class ThreadEx1
{
public static void main(String[] args)
{
ShowThread st1 = new ShowThread("1st 쓰레드");
ShowThread st2 = new ShowThread("2nd 쓰레드");
st1.start();
st2.start();
// start() : thread를 시작시키는 메소드로 자동으로 run()메소드 호출
}
}
.
.
run()이라는 메소드는 따로 정의하지 않았지만 thread클래스의 메소드로 오버라이딩해서 작업해야합니다.
728x90
반응형
'Java > 본격 Java 스레드' 카테고리의 다른 글
[Java] synchronized thread 실습 (0) | 2020.07.02 |
---|---|
[Java] 우선순위 스레드(Priority Thread) (0) | 2020.07.02 |
[Java] Runnable 스레드(Runnable thread) (0) | 2020.07.02 |