// 메신저 사용시 ->for(;;){};가 아닌 Thread를 사용하여 동시에 다른작업도 가능하도록 함
// 서버상에서 메시지가 언제 들어올지모르니까.. 계속 쓰레드를 돌리면서 수행,
// 루프로 돌리면 동시에 다른 작업이 불가!
/*
public class ThreadTest extends Thread {
public void printNumber() { // 0부터 1까지 화면에 출력시키는 메소드
for( int i=1 ; i<=20 ; i++ ) {
System.out.println( "number = " + i );
}
}
// Runnable interface가 지닌 run()를 overriding
public void run() {
printNumber(); //호출
} //제 정의
public static void main( String[] args ) {
ThreadTest tt = new ThreadTest(); // 객체 생성
tt.start(); // Thread를 시작시킴
// 과정 :
// JVM에게 요청 -> run()실행->
// printNumber()-> 아래의System.out.println 실행
System.out.println( "--------> main thread end" );
}
}//버그 : 순서가 틀림 , 가장 나중에 끝나는 것은 "주 쓰레드"가 되어야 한다.
**/
/*
구조
object :wait,notify,notifyAll
-> Thread :start, stop (+ <- runnable interface(public void run()))
-> ThreadTest : 상위 모두 + printNumber()
**/
/*
public class ThreadTest extends Thread {
public void printNumber() { // 0부터 1까지 화면에 출력시키는 메소드
for( int i=1 ; i<=20 ; i++ ) {
System.out.println( "number = " + i );
}
}
// Runnable interface가 지닌 run()를 overriding
public void run() {
printNumber(); //호출
} //제 정의
public static void main( String[] args ) {
ThreadTest tt = new ThreadTest(); // 객체 생성
tt.start(); // Thread를 시작시킴
// 과정 :
// JVM에게 요청 -> run()실행->
// printNumber()-> 아래의System.out.println 실행
// main()내에서 화면에 101부터 120까지 출력
for( int i=101 ; i<=120 ; i++ ) {
System.out.println( "-------> main number = " + i );
}//단 컨퓨터 성능에 따라 순서가 바뀔 수 있다.
}
}**/
/*
public class ThreadTest extends Thread {
public void printNumber() { // 0부터 1까지 화면에 출력시키는 메소드
for( int i=1 ; i<=20 ; i++ ) {
System.out.println( "number = " + i );
}
}
// Runnable interface가 지닌 run()를 overriding
public void run() {
printNumber(); //호출
} //제 정의
public static void main( String[] args ) {
ThreadTest tt = new ThreadTest(); // 객체 생성
tt.start(); // Thread를 시작시킴
// 과정 :
// JVM에게 요청 -> run()실행->
// printNumber()-> 아래의System.out.println 실행
// main()내에서 화면에 101부터 120까지 출력
tt.join(); //-> try catch code블럭필요!
}
}
}**/
/*
public class ThreadTest extends Thread {
public void printNumber() { // 0부터 1까지 화면에 출력시키는 메소드
for( int i=1 ; i<=20 ; i++ ) {
System.out.println( "number = " + i );
}
}
// Runnable interface가 지닌 run()를 overriding
public void run() {
printNumber(); //호출
} //제 정의
public static void main( String[] args ) {
ThreadTest tt = new ThreadTest(); // 객체 생성
tt.start(); // Thread를 시작시킴
try{
tt.join();
}catch(InterruptedException e){}
System.out.println( "-------> main number = ");
}
/*
public class ThreadTest extends Thread {
public void printNumber() { // 0부터 1까지 화면에 출력시키는 메소드
for( int i=1 ; i<=20 ; i++ ) {
System.out.println( "number = " + i );
}
}
// Runnable interface가 지닌 run()를 overriding
public void run() {
System.out.println(Thread.currentThread());//순위확인
printNumber(); //호출
} //제 정의
public static void main( String[] args ) {
ThreadTest tt = new ThreadTest(); // 객체 생성
tt.start();// Thread를 시작시킴
System.out.println(tt.getPriority());//순위확인
try{
tt.join();
}catch(InterruptedException e){}
System.out.println( "-------> main number = ");
}
}**/
public class ThreadTest extends Thread {
public void printNumber() {
for( int i=1 ; i<=20 ; i++ ) {
System.out.println( "number = " + i );
}
}
public void run() {
System.out.println(Thread.currentThread());
printNumber();
}
public static void main( String[] args ) {
ThreadTest tt = new ThreadTest();
tt.start();
tt.setPriority(9); //속도 우선순위 지정!!!
System.out.println(tt.getPriority());
try{
tt.join();
}catch(InterruptedException e){}
System.out.println( "-------> main number = ");
}
}
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
ex5) java_thread (0) | 2012.02.27 |
---|---|
ex4) java_thread (0) | 2012.02.27 |
ex2) java_thread (0) | 2012.02.27 |
ex1) java_thread (0) | 2012.02.27 |
java _20120227 (Thread) (0) | 2012.02.27 |
댓글