노정의 해설 및 실례

3324 단어 thread
스레드 사용법:
1. Thread 클래스를 계승하려면 반드시 런 방법을 덮어쓰고 코드는 런 방법에 써야 한다.
2. Runnable 인터페이스(java.lang)를 실현하고 인터페이스에run 방법이 있습니다.
 
Thread.currentThread.getName () 메서드와 this.getName () 방법의 차이점:
하나의 클래스가 Thread 클래스를 계승할 때만 이 두 가지 방법이 통용될 수 있습니다. Thread 클래스에만 getName () 방법이 있고, 하나의 클래스가 Runnable 인터페이스를 실현할 때this를 사용할 수 없습니다.getName () 메서드는 Thread 클래스의 하위 클래스가 아니기 때문입니다.
 
--------------------------------------------------------
public class TestMitiThread1 implements Runnable {
 
    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName() + "스레드 실행 시작!"
        TestMitiThread1 test = new TestMitiThread1();
        Thread thread1 = new Thread(test);
        Thread thread2 = new Thread(test);
        thread1.start();
        thread2.start();
        System.out.println(Thread.currentThread().getName() + "스레드 실행 끝!");
    }
 
    public void run() {
        System.out.println(Thread.currentThread().getName() + "스레드 실행 시작!"
        for (int i = 0; i < 10; i++) {
            System.out.println(i + ""+ Thread.currentThread().getName());
            try {
                Thread.sleep((int) Math.random() * 10);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println(Thread.currentThread().getName() + "스레드 실행 끝!");
    }
}
결과:
main 스레드 실행 시작!
Thread-0 스레드 실행 시작!
main 스레드 실행 종료!
0 Thread-0
Thread-1 스레드 실행 시작!
0 Thread-1
1 Thread-1
1 Thread-0
2 Thread-0
2 Thread-1
3 Thread-0
3 Thread-1
4 Thread-0
4 Thread-1
5 Thread-0
6 Thread-0
5 Thread-1
7 Thread-0
8 Thread-0
6 Thread-1
9 Thread-0
7 Thread-1
Thread-0 스레드 실행 종료!
8 Thread-1
9 Thread-1
Thread-1 라인 운행 종료!
설명:
TestMitiThread 1 클래스는 Runnable 인터페이스를 실현함으로써 이 클래스에 다중 루틴 클래스의 특징을 가지게 한다.run () 방법은 다중 루틴 프로그램의 약속입니다.모든 다중 루틴 코드는run 방법 안에 있습니다.Thread 클래스는 실제로 Runnable 인터페이스를 구현하는 클래스이기도 합니다.
다중 스레드를 시작할 때 Thread 클래스의 구조 방법인 Thread(Runnable target)을 통해 대상을 구성한 다음 Thread 대상의 start() 방법을 호출하여 다중 스레드 코드를 실행해야 한다.
실제로 모든 다중 스레드 코드는 Thread를 실행하는 start () 방법으로 실행됩니다.따라서 Thread 클래스를 확장하든 Runnable 인터페이스를 실현하든 다중 루틴을 실현하든 최종적으로 Thread의 대상의 API를 통해 루틴을 제어하든 Thread 클래스에 익숙한 API는 다중 루틴 프로그래밍의 기초이다.
---------------------------------------------------------------------------------------------
 
public class MyThread extends Thread{
	public int x = 0;
	public void run(){
		System.out.println(++x);
	}
	
	public static void main(String[] args) {
		for(int i=0;i<10;i++){
			Thread t = new MyThread();
			t.start();
		}
	}
}
  : 10 1.......1......1
 
public class TaThread implements Runnable{
	public int x = 0;
	public void run(){
		System.out.println(++x);
	}
	
	public static void main(String[] args) {
		for(int i=0;i<10;i++){
			TaThread ta = new TaThread();
			Thread t = new Thread(ta);
			t.start();
		}
	}
}
  :  1 10.  1..5....10

좋은 웹페이지 즐겨찾기