노정의 해설 및 실례
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
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Exception in thread main java.lang. NoClassDefFoundError 오류 해결 방법즉,/home/hadoop/jarfile) 시스템은 Hello World 패키지 아래의class라는 클래스 파일을 실행하고 있다고 오인하여 시스템의 CLASSPATH 아래 (일반적으로 현재 디렉터리를 포함) Hell...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.