자바 스 레 드 만 드 는 두 가지 방법 차이
다음은 두 가지 예 를 통 해 이들 의 차 이 를 분석한다.
1)스 레 드 클래스 계승
public class TestThread extends Thread {
int count = 3;
public TestThread(String ThreadName) {
super(ThreadName);
}
@Override
public void run() {
for (int i = 0; i < 10; i++)
if (count > 0) {
System.out.println(Thread.currentThread().getName() + "--->" + count);
count--;
}
}
public static void main(String[] args) {
//new
new TestThread(" ").start();
new TestThread(" ").start();
new TestThread(" ").start();
}
}
출력 결과:스 레 드 1--->3
스 레 드 1--->2
스 레 드 1
스 레 드 2--->3
스 레 드 2
스 레 드 2--->1
스 레 드 3--->3
스 레 드 3--->2
스 레 드 3--->1
2)Runnable 인터페이스 구현
Thread 를 계승 하 는 코드 와 같 습 니 다:
public class TestThread implements Runnable {
int count = 3;
public TestThread() {
}
@Override
public void run() {
for (int i = 0; i < 10; i++)
if (count > 0) {
System.out.println(Thread.currentThread().getName() + "--->" + count);
count--;
}
}
public static void main(String[] args) {
TestThread tr = new TestThread();
//new Runnable
new Thread(tr, " ").start();
new Thread(tr, " ").start();
new Thread(tr, " ").start();
}
}
출력 결과:스 레 드 1--->3
스 레 드 1--->2
스 레 드 1
두 가지 새 스 레 드 방식 의 마지막 출력 결과 가 다른 것 을 발견 할 수 있 습 니 다.Thread 클래스 를 계승 하 는 동시에 세 개의 스 레 드 를 만 들 었 기 때 문 입 니 다.모든 스 레 드 는 하나의 작업 을 수행 하고 세 개의 스 레 드 가 각각 세 번 순환 인쇄 log 를 하 는 것 과 같 습 니 다.두 번 째 실현 Runnable 인터페이스 에 서 는 세 개의 Thread 를 만들어 공동으로 tr 라 는 Runnable 을 실행 하 는 것 입 니 다.세 개의 Thread 가 공동으로 이 순환 을 수행 하 는 것 과 같 습 니 다.마지막 으로 count 는 한 번 만 순환 되 었 고 나머지 스 레 드 2 와 스 레 드 3 은 같은 count 를 사용 하여 인쇄 하지 못 했 습 니 다.
결론:
1)두 가지 스 레 드 를 만 드 는 실현 방식 이 다 릅 니 다.하 나 는 하 나 를 계승 하여 인 터 페 이 스 를 실현 합 니 다.자바 에서 다른 부모 클래스 를 계승 했다 면 인터페이스 로 스 레 드 를 만 들 수 밖 에 없습니다.
2)위의 예 를 통 해 Thread 를 계승 하 는 것 을 볼 수 있 습 니 다.모든 스 레 드 는 하나의 대상 을 독립 적 으로 가지 고 있 으 며 Runnable 대상 을 실현 하고 여러 스 레 드 는 하나의 Runnable 인 스 턴 스 를 공유 합 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.