Thread 클래스(자바 다 중 스 레 드 작업 의 Thread 클래스,소스 코드 분석)
1, Thread ;
2, Runnable ;
3, ExecutorService、Callable、Future 。
그 중에서 앞의 두 가지 방식 은 스 레 드 가 실 행 된 후에 반환 값 이 없고 가장 큰 것 은 실 행 된 후에 반환 값 이 있 습 니 다.
4.567917.Thread 류 를 계승 하여 다 중 스 레 드 계승 Thread 류 를 실현 하 는 것 은 본질 적 으로 Runnable 인터페이스 의 인 스 턴 스 를 실현 하 는 것 입 니 다.이것 은 하나의 스 레 드 의 인 스 턴 스 를 대표 하고 스 레 드 를 시작 하 는 유일한 방법 은 Thread 류 의 start()인 스 턴 스 방법 입 니 다.Start()방법 은 native 방법 으로 새로운 스 레 드 를 시작 하고 run()방법 을 실행 합 니 다.이러한 방식 은 다 중 스 레 드 를 실현 하 는 것 이 비교적 간단 하 다.자신의 클래스 를 통 해 직접 extend Threa 를 통 해 run()방법 을 복사 하면 새로운 스 레 드 를 시작 하고 자신 이 정의 한 run()방법 을 실행 할 수 있다.다음 과 같 습 니 다.Thread 류 를 계승 하여 두 스 레 드 의 집행 을 실현 합 니 다
class SimpleThread extends Thread {
public SimpleThread(String str) {
super(str);
}
public void run() {
for (int i = 0; i < 10; i++) {
System.out.println(i + "" + getName());
try {
sleep((int)(Math.random() * 1000));
} catch (InterruptedException e) {}
}
System.out.println("DONE! " + getName());
}
}
main 방법 에서 실 행 된 코드:
public class TwoThreadsTest {
public static void main (String[] args) {
new SimpleThread("Go to Beijing??").start();
new SimpleThread("Stay here!!").start();
}
}
두 스 레 드 가 교체 되 어 실 행 된 콘 솔 결과:
0Stay here!!
0Go to Beijing??
1Go to Beijing??
1Stay here!!
2Go to Beijing??
3Go to Beijing??
2Stay here!!
3Stay here!!
4Go to Beijing??
4Stay here!!
5Go to Beijing??
6Go to Beijing??
5Stay here!!
6Stay here!!
7Stay here!!
7Go to Beijing??
8Go to Beijing??
8Stay here!!
9Go to Beijing??
DONE! Go to Beijing??
9Stay here!!
DONE! Stay here!!
분석:두 스 레 드 의 실행 순 서 를 통 해 알 수 있 듯 이 그들 은 실행 하 는 과정 에서 양보 하 는 순서에 따라 순서대로 집행 하지 않 았 다.한 스 레 드 가 실 행 된 후에 이 스 레 드 를 제외 한 스 레 드 가 아니 라 현재 스 레 드 가 계속 실 행 될 수 있다.이것 은 다 중 스 레 드 가 실 행 될 때 동시 실행 에 속 하기 때문에 모든 스 레 드 는 CPU 의 한 시간 대 를 차지 하고 시간 대가 실행 되 지 않 으 면 다른 스 레 드 를 실행 하지 않 습 니 다.시간 대 를 실행 한 후에 첫 번 째 스 레 드 의 실행 을 복원 합 니 다.
코드 설명:여기 서 거 리 는 두 스 레 드 간 의 출력 관 계 를 설명 합 니 다.여러 스 레 드 가 나타 날 때 여러 스 레 드 를 정리 하고 여러 스 레 드 간 에 분 배 된 시간 내 에 스 레 드 를 실행 하 며 시간 대가 끝나 면 자동 으로 CPU 를 양보 하고 다른 스 레 드 를 실행 하도록 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.