Thread 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
스레드는 프로그램의 실행 스레드입니다.
[Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)]
public class Thread : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IRunnable
[<Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)>]
type Thread = class
inherit Object
interface IRunnable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 상속
- 파생
- 특성
- 구현
설명
스레드는 프로그램에서 실행되는 스레드입니다. Java Virtual Machine을 사용하면 애플리케이션에서 여러 실행 스레드를 동시에 실행할 수 있습니다.
모든 스레드에는 우선 순위가 있습니다. 우선 순위가 높은 스레드는 우선 순위가 낮은 스레드에 대한 기본 설정으로 실행됩니다. 각 스레드는 디먼으로 표시되거나 표시되지 않을 수도 있습니다. 일부 스레드에서 실행되는 코드가 새 Thread
개체를 만들 때 새 스레드의 우선 순위는 처음에 스레드 만들기의 우선 순위와 동일하게 설정되며, 만드는 스레드가 디먼인 경우에만 디먼 스레드입니다.
Java Virtual Machine이 시작되면 일반적으로 디먼이 아닌 단일 스레드가 있습니다(일반적으로 지정된 클래스의 명명된 메서드를 main
호출). Java Virtual Machine은 다음 중 하나가 발생할 때까지 스레드를 계속 실행합니다<. ul><li>클래스 Runtime
의 메서드가 exit
호출되었고 보안 관리자가 종료 작업을 수행하도록 허용했습니다. <li>디먼 스레드가 아닌 모든 스레드는 메서드 호출에서 run
반환하거나 메서드를 넘어 run
전파되는 예외를 throw하여 사망했습니다. </ul>
새 실행 스레드를 만드는 방법에는 두 가지가 있습니다. 하나는 클래스를 의 Thread
하위 클래스로 선언하는 것입니다. 이 하위 클래스는 클래스 Thread
의 메서드를 run
재정의해야 합니다. 그런 다음 서브클래스의 instance 할당하고 시작할 수 있습니다. 예를 들어 명시된 값보다 큰 소수를 계산하는 스레드는 다음과 같이 작성될 수 있습니다. <hr><blockquote>
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
그런 다음, 다음 코드는 스레드를 만들고 실행을 <시작합니다. blockquote>
PrimeThread p = new PrimeThread(143);
p.start();
</인용구>
스레드를 만드는 다른 방법은 인터페이스를 구현하는 클래스를 선언하는 것입니다 Runnable
. 그런 다음, 해당 클래스는 메서드를 run
구현합니다. 그런 다음 클래스의 instance 할당하고, 를 만들 Thread
때 인수로 전달하고, 시작할 수 있습니다. 이 다른 스타일의 동일한 예제는 hr><blockquote와 같습니다<.>
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() {
// compute primes larger than minPrime
. . .
}
}
</blockquote><hr>
그런 다음, 다음 코드는 스레드를 만들고 실행을 <시작합니다. blockquote>
PrimeRun p = new PrimeRun(143);
new Thread(p).start();
</인용구>
모든 스레드에는 식별 목적으로 이름이 있습니다. 둘 이상의 스레드의 이름이 같을 수 있습니다. 스레드를 만들 때 이름을 지정하지 않으면 새 이름이 생성됩니다.
달리 명시되지 않는 한 이 클래스의 null
생성자 또는 메서드에 인수를 전달하면 가 NullPointerException
throw됩니다.
1.0에 추가되었습니다.
에 대한 Java 설명서입니다 java.lang.Thread
.
이 페이지의 일부는 만들고 공유하며 에 설명된 조건에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
Thread() |
새 |
Thread(Action) |
스레드는 프로그램의 실행 스레드입니다. |
Thread(Action, String) |
스레드는 프로그램의 실행 스레드입니다. |
Thread(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
Thread(IRunnable) |
새 |
Thread(IRunnable, String) |
새 |
Thread(String) |
새 |
Thread(ThreadGroup, Action) |
스레드는 프로그램의 실행 스레드입니다. |
Thread(ThreadGroup, Action, String) |
스레드는 프로그램의 실행 스레드입니다. |
Thread(ThreadGroup, Action, String, Int64) |
스레드는 프로그램의 실행 스레드입니다. |
Thread(ThreadGroup, IRunnable) |
새 |
Thread(ThreadGroup, IRunnable, String) |
새 |
Thread(ThreadGroup, IRunnable, String, Int64) |
새 |
Thread(ThreadGroup, IRunnable, String, Int64, Boolean) |
새 |
Thread(ThreadGroup, String) |
새 |
필드
MaxPriority |
스레드가 가질 수 있는 최대 우선 순위입니다. |
MinPriority |
스레드가 가질 수 있는 최소 우선 순위입니다. |
NormPriority |
스레드에 할당된 기본 우선 순위입니다. |
속성
AllStackTraces |
모든 라이브 스레드에 대한 스택 추적의 맵을 반환합니다. |
Class |
이 |
ContextClassLoader |
이 스레드의 컨텍스트 |
Daemon |
이 스레드가 디먼 스레드인지 테스트합니다. -또는- 이 스레드를 #isDaemon 디먼 스레드 또는 사용자 스레드로 표시합니다. |
DefaultUncaughtExceptionHandler |
catch되지 않은 예외로 인해 스레드가 갑자기 종료될 때 호출되는 기본 처리기를 반환합니다. -또는- catch되지 않은 예외로 인해 스레드가 갑자기 종료되고 해당 스레드에 대해 다른 처리기가 정의되지 않은 경우 호출되는 기본 처리기를 설정합니다. |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
Id |
이 스레드의 식별자를 반환합니다. |
IsAlive |
이 스레드가 활성 상태인지 테스트합니다. |
IsInterrupted |
이 스레드가 중단되었는지 여부를 테스트합니다. |
JniIdentityHashCode |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
JniPeerMembers |
스레드는 프로그램의 실행 스레드입니다. |
Name |
이 스레드의 이름을 반환합니다. -또는- 이 스레드의 이름을 인수 |
PeerReference |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
Priority |
이 스레드의 우선 순위를 반환합니다. -또는- 이 스레드의 우선 순위를 변경합니다. |
ThreadGroup |
이 스레드가 속한 스레드 그룹을 반환합니다. |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
UncaughtExceptionHandler |
catch되지 않은 예외로 인해 이 스레드가 갑자기 종료될 때 호출되는 처리기를 반환합니다. -또는- catch되지 않은 예외로 인해 이 스레드가 갑자기 종료될 때 호출되는 처리기를 설정합니다. |
메서드
ActiveCount() |
현재 스레드의 java에 있는 활성 스레드 수의 예상값을 반환합니다. |
CheckAccess() |
현재 실행 중인 스레드에 이 스레드를 수정할 수 있는 권한이 있는지 확인합니다. |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
CountStackFrames() |
사용되지 않음.
이 스레드의 스택 프레임 수를 계산합니다. |
CurrentThread() |
현재 실행 중인 스레드 개체에 대한 참조를 반환합니다. |
Destroy() |
사용되지 않음.
|
Dispose() |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
DumpStack() |
현재 스레드의 스택 추적을 표준 오류 스트림에 인쇄합니다. |
Enumerate(Thread[]) |
현재 스레드의 스레드 그룹 및 해당 하위 그룹에 있는 모든 활성 스레드를 지정된 배열에 복사합니다. |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetStackTrace() |
이 스레드의 스택 덤프를 나타내는 스택 추적 요소의 배열을 반환합니다. |
GetState() |
이 스레드의 상태를 반환합니다. |
HoldsLock(Object) |
현재 스레드가 지정된 개체에 대한 모니터 잠금을 보유하는 경우에만 를 반환 |
Interrupt() |
이 스레드를 중단합니다. |
Interrupted() |
현재 스레드가 중단되었는지 여부를 테스트합니다. |
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
Join() |
이 스레드가 죽을 때까지 기다립니다. |
Join(Int64) |
이 스레드가 죽을 때까지 최대 |
Join(Int64, Int32) |
이 스레드가 죽을 때까지 최대 |
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
OnSpinWait() |
다른 작업에서 하나 이상의 작업이 발생할 때까지 호출자가 일시적으로 진행할 수 없음을 나타냅니다. |
Resume() |
사용되지 않음.
|
Run() |
이 스레드가 별도의 |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
Sleep(Int64) |
시스템 타이머 및 스케줄러의 정밀도 및 정확도에 따라 현재 실행 중인 스레드가 지정된 시간(밀리초)에 대해 절전 모드(일시적으로 실행 중단)되도록 합니다. |
Sleep(Int64, Int32) |
시스템 타이머 및 스케줄러의 정밀도 및 정확도에 따라 현재 실행 중인 스레드가 지정된 시간(밀리초) 및 지정된 나노초 수에 대해 절전 모드(일시적으로 실행 중단)되도록 합니다. |
Start() |
이 스레드가 실행을 시작하도록 합니다. Java Virtual Machine은 이 스레드의 메서드를 |
Stop() |
사용되지 않음.
|
Stop(Throwable) |
사용되지 않음.
|
Suspend() |
사용되지 않음.
|
ToArray<T>() |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Yield() |
현재 스레드가 프로세서의 현재 사용을 산출할 의향이 있음을 스케줄러에 대한 힌트입니다. |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
스레드는 프로그램의 실행 스레드입니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
스레드는 프로그램의 실행 스레드입니다. |
GetJniTypeName(IJavaPeerable) |
스레드는 프로그램의 실행 스레드입니다. |