쓰레드
2019. 8. 16. 11:59ㆍ프로그래밍/Java
public class Test01 extends Thread{
public Test01(String name) {
super(name);
}
public void run() {
for(int i=0; i<10; i++) {
try { //예외처리
sleep(1000);
System.out.println("Thread name:" + currentThread().getName());
System.out.println("\t i =" + i);
} catch (InterruptedException e) {
e.printStackTrace();
//e.printStackTrace(); 메소드 getMessage, toString과는 다르게 printStackTrace는 리턴값이 없다.
//이 메소드를 호출하면 메소드가 내부적으로 예외 결과를 화면에 출력한다. printStackTrace는 가장 자세한 예외 정보를 제공한다.
}
}
}
public static void main(String[] args) {
Test01 te = new Test01("First");
te.start(); //Runable 상태
}
}
Runnable로 implemnts를 하는 이유는 더 확장성있게 만들 수 있음
public class Test01 implements Runnable{ //extends Thread{
//implemnts 인경우 부모클래스가 없기때문에 super는 안씀
String name;
public Test01(String name) {
this.name= name;
}
public void run() {
for(int i=0; i<10; i++) {
try { //예외처리
Thread.sleep(1000);
System.out.println("Thread name:" + Thread.currentThread().getName());
System.out.println("\t i =" + i);
} catch (InterruptedException e) {
e.printStackTrace();
//e.printStackTrace(); 메소드 getMessage, toString과는 다르게 printStackTrace는 리턴값이 없다.
//이 메소드를 호출하면 메소드가 내부적으로 예외 결과를 화면에 출력한다. printStackTrace는 가장 자세한 예외 정보를 제공한다.
}
}
}
public static void main(String[] args) {
//Runnable을 받을때 이 3가지를 기본으로 가져간다.
Test01 te = new Test01("First");
Thread aa=new Thread(te);
aa.start(); //Runnable 상태
}
}
다른 예
public class Test01 implements Runnable{ //extends Thread{
//implemnts 인경우 부모클래스가 없기때문에 super는 안씀
// String name;
// public Test01(String name) {
// this.name= name;
// }
public void run() {
for(int i=0; i<10; i++) {
try { //예외처리
Thread.sleep(1000); //1초 뒤에 뜨게함
System.out.println("Thread name:" + Thread.currentThread().getName());
System.out.println("\t i =" + i);
} catch (InterruptedException e) {
e.printStackTrace();
//e.printStackTrace(); 메소드 getMessage, toString과는 다르게 printStackTrace는 리턴값이 없다.
//이 메소드를 호출하면 메소드가 내부적으로 예외 결과를 화면에 출력한다. printStackTrace는 가장 자세한 예외 정보를 제공한다.
}
}
}
public static void main(String[] args) {
//Runnable을 받을때 이 3가지를 기본으로 가져간다.
Test01 te = new Test01();
Thread th=new Thread(te, "Superman"); //스레드 객체 만들어야함
th.start(); //Runnable 상태
}
}
'프로그래밍 > Java' 카테고리의 다른 글
예외 처리기 (0) | 2019.08.16 |
---|---|
notify, wait (0) | 2019.08.16 |
제네릭 (0) | 2019.08.15 |
anonymous class (0) | 2019.08.15 |
8_15 (0) | 2019.08.15 |