Java 스레드 프로그래밍의 기본 스레드 설명
static Thread currentThread( )
이 방법은 호출된 라인의 인용을 되돌려줍니다.일단 네가 주 라인의 인용을 얻게 되면, 너는 다른 라인을 제어하는 것처럼 주 라인을 제어할 수 있다.다음 예제를 복습하는 것부터 시작합시다.
// Controlling the main Thread.
class CurrentThreadDemo {
public static void main(String args[]) {
Thread t = Thread.currentThread();
System.out.println("Current thread: " + t);
// change the name of the thread
t.setName("My Thread");
System.out.println("After name change: " + t);
try {
for(int n = 5; n > 0; n--) {
System.out.println(n);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("Main thread interrupted");
}
}
}
이 프로그램에서 현재 스레드 (자연은 주 스레드) 의 인용은currentThread () 를 호출하여 얻을 수 있으며, 이 인용은 국부 변수 t에 저장됩니다.그리고 프로그램은 라인의 정보를 보여 줍니다.다음 프로그램에서 setName () 을 호출하여 스레드의 내부 이름을 변경합니다.스레드 정보가 또 표시됩니다.그리고 한 순환 수는 5부터 점차 줄어들며, 한 번씩 1초 동안 멈춘다.일시 정지는 sleep () 방법으로 이루어집니다.Sleep () 문구는 지연 시간을 1ms로 명시합니다.순환 외의try/catch 블록을 주의하십시오.Thread 클래스의 sleep () 방법은 InterruptedException 이상을 일으킬 수 있습니다.이런 상황은 다른 라인이 잠든 라인을 방해하려고 할 때 발생한다.이 예는 단지 끊어졌는지 아닌지의 메시지를 인쇄했을 뿐이다.실제 절차에서, 너는 반드시 이런 문제를 유연하게 처리해야 한다.다음은 프로그램의 출력입니다.
Current thread: Thread[main,5,main]
After name change: Thread[My Thread,5,main]
5
4
3
2
1
t가 문장println () 의 매개 변수로 운용될 때 출력되는 것을 주의하십시오.이 표시 순서: 스레드 이름, 우선순위 및 그룹 이름입니다.기본적으로 메인 라인의 이름은main입니다.그것의 우선순위는 5입니다. 이것도 기본값이고main도 소속 루틴 그룹의 이름입니다.하나의 스레드 그룹 (thread group) 은 스레드를 하나의 전체적인 집합 상태로 제어하는 데이터 구조이다.이 과정은 전유의 운행 시 환경에 의해 처리되므로 여기서 군더더기 말할 필요가 없다.스레드 이름이 바뀌면 t가 출력됩니다.이번에는 새로운 스레드 이름을 표시했다.프로그램의 Thread 클래스 정의 방법을 자세히 살펴보겠습니다.sleep () 방법은 밀리초급의 시간 지시에 따라 스레드를 호출에서 끊기까지 합니다.일반적인 형식은 다음과 같습니다.
static void sleep(long milliseconds) throws InterruptedException
일시 중지 시간은 밀리초로 명시적으로 정의됩니다.이 방법은 InterruptedException 이상을 일으킬 수 있습니다.sleep () 방법은 두 번째 형식이 있습니다. 다음과 같습니다. 이 방법은 밀리초인지 납초인지를 주기로 지정할 수 있습니다.
static void sleep(long milliseconds, int nanoseconds) throws InterruptedException
두 번째 형식은 납초를 시간 주기로 허용할 때만 사용할 수 있다.상기 프로그램에서 보듯이 setName () 으로 스레드 이름을 설정하고, getName () 으로 스레드 이름을 얻을 수 있습니다. 이 과정은 프로그램에서 나타나지 않습니다.이러한 메서드는 다음과 같이 Thread 클래스의 구성원입니다.
final void setName(String threadName)
final String getName( )
여기,threadName은 스레드 이름을 지정합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.