티스토리 뷰
반응형
1편 스레드 객체생성 및 실행
=============
알아두기
스레드란 한가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어 놓았다고 해서 유래된 이름이다.
=============
스레드 객체생성 및 사용방법
package test;
public class Ex1 {
public static void main(String[] args) {
/*
* Runnable은 스레드가 실행할 수 있는 코드를 가지고있는 객체고
* 인터페이스타입이라 구현 객체를 만들어 대입해야한다.
* run()메소드가 정의되어있어 재정의해 스레드가 실행할 코드를 작성한다.
*/
// 1.인터페이스 방식
Runnable runnable1 = new Runnable1();
Thread thread1 = new Thread(runnable1);
/*
* 보통 간단히 아래방법으로 한번에 사용한다. 람다식 방법은 람다식 부분에서~
* Thread thread1 = new Thread(new Runnable() {
* @Override public void run() {
* } });
*/
// 2.상속 방식
Runnable2 runnable2 = new Runnable2();
/*
* 객체생성 후 Start()메소드를 이용하여 실행대기 상태로 만든다.
* Start()를 호출한다고 바로시작되는것이아니라 실행대기
* 상태를 만들어 스케줄링에 선택이되어지면 스레드가 실행된다.
*/
thread1.start();
runnable2.start();
// 스레드 이름설정 및 가져 오는 방법
System.out.println(thread1.getName()); // 결과: Thread-0
thread1.setName("스레드1");
System.out.println(thread1.getName()); // 결과: 스레드1
/*
* 스레드객체의 참조를 가지고있지 않다면 currentThread로
* 현재 스레드의 참조를 얻을수 있다.
*/
Thread thread3 = Thread.currentThread();
System.out.println(thread3.getName()); // 결과: main
for (int i = 0; i < 10; i++) {
System.out.println("메인스레드 실행중: " + i);
}
}
public static class Runnable1 implements Runnable {
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
System.out.println("Runnable1 작업스레드1 실행중: " + i);
}
}
}
public static class Runnable2 extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println("Runnable2 작업스레드2 실행중: " + i);
}
}
}
}
실행결과
Thread-0
스레드1
main
메인스레드 실행중: 0
메인스레드 실행중: 1
메인스레드 실행중: 2
메인스레드 실행중: 3
메인스레드 실행중: 4
메인스레드 실행중: 5
메인스레드 실행중: 6
Runnable1 작업스레드1 실행중: 0
Runnable2 작업스레드2 실행중: 0
Runnable1 작업스레드1 실행중: 1
Runnable1 작업스레드1 실행중: 2
메인스레드 실행중: 7
Runnable1 작업스레드1 실행중: 3
Runnable2 작업스레드2 실행중: 1
Runnable1 작업스레드1 실행중: 4
메인스레드 실행중: 8
Runnable1 작업스레드1 실행중: 5
Runnable2 작업스레드2 실행중: 2
Runnable1 작업스레드1 실행중: 6
메인스레드 실행중: 9
Runnable1 작업스레드1 실행중: 7
Runnable2 작업스레드2 실행중: 3
Runnable1 작업스레드1 실행중: 8
Runnable2 작업스레드2 실행중: 4
Runnable1 작업스레드1 실행중: 9
Runnable2 작업스레드2 실행중: 5
Runnable2 작업스레드2 실행중: 6
Runnable2 작업스레드2 실행중: 7
Runnable2 작업스레드2 실행중: 8
Runnable2 작업스레드2 실행중: 9
반응형
'JAVA' 카테고리의 다른 글
(JAVA)자바 스레드(Thread) 상태 및 제어 - 3편 (0) | 2017.03.30 |
---|---|
(JAVA) 자바 스레드(Thread) 우선순위, 동기화 - 2편 (0) | 2017.03.30 |
(JAVA) 자바 소수자리수 설정 Format, DecimalFormat (0) | 2017.02.12 |
(JAVA) 자바 Math, Random 클래스 알아보기 (0) | 2017.02.12 |
(JAVA) 자바 정규표현식 Regular Expression (0) | 2017.02.12 |
댓글
최근에 올라온 글
최근에 달린 댓글