Java가 스레드를 만드는 두 가지 방법
다선정은 우리가 개발하는 과정에서 자주 만나는 것이기 때문에 반드시 적지 않게 파악해야 한다.우리가 다중 스레드 개발이 필요하다는 것을 알았을 때 가장 먼저 알아야 할 자연은 어떻게 다중 스레드를 실현하는지, 즉 우리가 어떻게 스레드를 만들어야 하는지이다.
Java에서 스레드를 만드는 것과 일반 클래스를 만드는 것은 같은 작업입니다. 우리는 두 가지 방식으로 스레드를 만들 수 있습니다.
1. Thread 클래스를 상속하고 run() 메서드를 다시 작성합니다.
2. Runnable 인터페이스를 실현하고 run() 방법을 실현한다.
메서드1: Thread 클래스 상속
코드가 아주 간단해요.
우선 우리가 라인에 이름을 붙일 수 있도록 구조 함수를 다시 불러옵니다.
run () 방법을 다시 씁니다.
여기서 우리는 먼저 스레드 출력 스레드 이름 +start를 내보냅니다.
그리고 5ms마다 라인 이름 + 점증수를 출력합니다.
/**
* Created by holten.gao on 2016/10/17.
*/
public class threadThread extends Thread {
public threadThread(String name) {
super(name);
}
@Override
public void run() {
System.out.println(this.getName()+" start!");
for(int i=0;i<10;i++){
System.out.println(this.getName()+" "+i);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
방법2: Runnable 인터페이스 구현코드도 굉장히 간단해요.
run () 방법을 실현합니다.
여기서 우리는 먼저 스레드 출력 스레드 이름 +start를 내보냅니다.
그리고 5ms마다 라인 이름 + 점증수를 출력합니다.
/**
* Created by holten.gao on 2016/10/17.
*/
public class runnableThread implements Runnable {
@Override
public void run() {
System.out.println(Thread.currentThread().getName()+" start!");
for(int i=0;i<10;i++){
System.out.println(Thread.currentThread().getName()+" "+i);
try {
Thread.sleep(5);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
테스트 결과테스트 코드
/**
* Created by holten.gao on 2016/10/17.
*/
public class Main {
public static void main(String[] args) {
Thread threadThread=new threadThread("threadThread");
threadThread.start();
Thread runnableThread=new Thread(new runnableThread(),"runnableThread");
runnableThread.start();
}
}
테스트 결과
threadThread start!
threadThread 0
runnableThread start!
runnableThread 0
threadThread 1
runnableThread 1
threadThread 2
runnableThread 2
threadThread 3
runnableThread 3
threadThread 4
runnableThread 4
threadThread 5
runnableThread 5
threadThread 6
runnableThread 6
threadThread 7
runnableThread 7
threadThread 8
runnableThread 8
threadThread 9
runnableThread 9
두 가지 방법 비교1. 자바는 단일 계승만 지원하기 때문에 사용 방법은 다른 종류를 계승할 수 없다.방법2 실현 인터페이스는 다른 종류를 계승하는 데 영향을 주지 않는다.
2. 방법1은 Thread를 계승하기 때문에 new로 바로 나오면 start가 된다.메서드 2는 Thread 객체에 객체를 매개 변수로 전송해야 Thread 객체를 얻을 수 있습니다.
3. 방법 1에서 바로 이것을 통과할 수 있다.getName 스레드 이름 얻기;방법 2는 Thread가 필요합니다.currentThread().getName () 획득
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.