Java 프로그램이 시작되면 스레드가 즉시 실행됩니다. 메인 스레드의 중요성은 두 가지 측면에 반영됩니다.
기본 스레드는 프로그램이 시작될 때 자동으로 생성되지만 스레드 객체로 제어 할 수 있습니다. 이를 위해서는 스레드 클래스의 공개 정적 멤버 인 메소드 currentthread ()를 호출해야합니다. 일반적인 형태는 다음과 같습니다.
정적 스레드 currentthread ()
이 메소드는 그것을 불렀던 스레드에 대한 참조를 반환합니다. 기본 스레드에 대한 참조를 얻으면 다른 스레드를 제어하기 위해 메인 스레드를 제어 할 수 있습니다.
다음 예제를 검토하여 시작하겠습니다.
// 메인 스레드 제어 클래스 currentthreaddemo {public static void main (stride t = thread.currentthread (); " + t); T.SetName ( "내 스레드")의 "이름 변경 후"{int n = 5; n> 0; .println (n);이 프로그램에서, 현재 스레드 (또는 기본 스레드)에 대한 참조는 로컬 변수 t에 저장된 currentthread ()를 호출하여 얻습니다. 그런 다음 프로그램은 스레드의 정보를 표시합니다. 그런 다음 프로그램은 setName ()을 호출하여 스레드의 내부 이름을 변경합니다. 스레드 정보가 다시 표시됩니다. 그런 다음 사이클 번호가 5에서 감소하기 시작하여 매번 1 초 동안 일시 중지됩니다. 일시 정지는 수면 () 메소드에 의해 수행됩니다. 수면 () 문은 지연 시간이 1 밀리 초임을 분명히 규정하고 있습니다. 루프 외부의 시도/캐치 블록에주의하십시오.
스레드 클래스의 Sleep () 메소드는 InterruptedException 예외를 제기 할 수 있습니다. 이 상황은 다른 스레드가 수면 실을 방해하고 싶을 때 발생합니다. 이 예제는 단순히 메시지가 중단되었는지 여부를 인쇄합니다. 실제 프로그램에서는 그러한 문제를 다루는 데 유연해야합니다. 다음은이 프로그램의 출력입니다.
현재 스레드 : 스레드 [Main, 5, Main] 이름 변경 후 : 스레드 [내 스레드, 5, 메인] 54321
t는 println ()에서 매개 변수가 사용될 때 출력으로 사용됩니다. 디스플레이 순서 : 스레드 이름, 우선 순위 및 그룹 이름. 기본적으로 기본 스레드의 이름이 기본입니다. 우선 순위는 5이며, 기본값이기도하며, 메인은 또한 그에 속하는 스레드 그룹의 이름이기도합니다. 스레드 그룹은 스레드 상태를 전체 세트로 제어하는 데이터 구조입니다. 이 프로세스는 독점적 인 런타임 환경에 의해 처리되므로 여기에서 자세히 설명하지 않을 것입니다. 스레드 이름이 변경되면 T가 다시 출력됩니다. 이번에는 새 스레드 이름이 표시됩니다.
프로그램의 스레드 클래스에 의해 정의 된 방법을보다 신중하게 연구합시다. Sleep () 메소드는 실이 밀리 초 시간에 따라 중단되도록 호출되었음을 나타냅니다. 일반적인 형태는 다음과 같습니다.
정적 무효 수면 (긴 백만 초)은 중단 된 예고를 던진다
교수형 시간은 밀리 초로 명확하게 정의됩니다. 이 방법은 InterruptedException 예외를 던질 수 있습니다.
Sleep () 방법에는 두 번째 형태가 있으며, 아래에 표시되어있어 시간이 밀리 초 또는 나노초인지 여부를 주기로 지정할 수 있습니다.
정적 공극 수면 (긴 수백만 초, 나노 초)은 중단 된 예를 던집니다
두 번째 양식은 기간이 나노 초로 허용되는 경우에만 사용할 수 있습니다. 위의 프로그램에서 볼 수 있듯이 SetName ()을 사용하여 스레드 이름을 설정하고 getName ()을 사용하여 스레드 이름을 얻을 수 있습니다 (이 프로세스는 프로그램에 반영되지 않음). 이 방법은 스레드 클래스의 구성원이며 다음과 같이 선언됩니다.
Final void setName (String ThreadName) 최종 문자열 getName ()
여기서는 ThreadName은 특히 스레드 이름을 나타냅니다.