Thread Classe

Definição

Um thread é um thread de execução em um programa.

[Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)]
public class Thread : Java.Lang.Object, IDisposable, Java.Lang.IRunnable
[<Android.Runtime.Register("java/lang/Thread", DoNotGenerateAcw=true)>]
type Thread = class
    inherit Object
    interface IRunnable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Herança
Derivado
Atributos
Implementações

Comentários

Um thread é um thread de execução em um programa. A Java Virtual Machine permite que um aplicativo tenha vários threads de execução em execução simultaneamente.

Cada thread tem uma prioridade. Os threads com prioridade mais alta são executados em preferência aos threads com prioridade mais baixa. Cada thread pode ou não ser marcado como um daemon. Quando o código em execução em algum thread cria um novo Thread objeto, o novo thread tem sua prioridade inicialmente definida como igual à prioridade do thread de criação e é um thread de daemon se e somente se o thread de criação for um daemon.

Quando uma Java Virtual Machine é iniciada, geralmente há um único encadeamento não daemon (que normalmente chama o método nomeado main de alguma classe designada). A Java Virtual Machine continua a executar encadeamentos até que ocorra uma das seguintes situações: <ul><li>O exit método de classe Runtime foi chamado e o gerenciador de segurança permitiu que a operação de saída ocorresse. <li>Todos os threads que não são threads daemon morreram, retornando da chamada para o run método ou lançando uma exceção que se propaga além do run método. </ul>

Há duas maneiras de criar um novo thread de execução. Uma é declarar uma classe como uma subclasse de Thread. Essa subclasse deve substituir o run método da classe Thread. Uma instância da subclasse pode então ser alocada e iniciada. Por exemplo, um thread que calcula primos maiores que um valor declarado pode ser escrito da seguinte maneira: <hr><blockquote>

class PrimeThread extends Thread {
                    long minPrime;
                    PrimeThread(long minPrime) {
                        this.minPrime = minPrime;
                    }

                    public void run() {
                        // compute primes larger than minPrime
                        &nbsp;.&nbsp;.&nbsp;.
                    }
                }

</blockquote><hr>

O código a seguir criaria um thread e o iniciaria em execução: <blockquote>

PrimeThread p = new PrimeThread(143);
                p.start();

</blockquote>

A outra maneira de criar um thread é declarar uma classe que implementa a Runnable interface. Essa classe então implementa o run método. Uma instância da classe pode então ser alocada, passada como um argumento ao criar Threade iniciada. O mesmo exemplo neste outro estilo se parece com o seguinte: <hr><blockquote>

class PrimeRun implements Runnable {
                    long minPrime;
                    PrimeRun(long minPrime) {
                        this.minPrime = minPrime;
                    }

                    public void run() {
                        // compute primes larger than minPrime
                        &nbsp;.&nbsp;.&nbsp;.
                    }
                }

</blockquote><hr>

O código a seguir criaria um thread e o iniciaria em execução: <blockquote>

PrimeRun p = new PrimeRun(143);
                new Thread(p).start();

</blockquote>

Cada thread tem um nome para fins de identificação. Mais de um thread pode ter o mesmo nome. Se um nome não for especificado quando um thread for criado, um novo nome será gerado para ele.

A menos que indicado de outra forma, passar um null argumento para um construtor ou método nesta classe fará com que um NullPointerException seja lançado.

Adicionado em 1.0.

Documentação Java para java.lang.Thread.

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Construtores

Nome Description
Thread()

Aloca um novo Thread objeto.

Thread(Action, String)

Inicializa uma nova instância de Thread.

Thread(Action)

Inicializa uma nova instância de Thread.

Thread(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Thread(IRunnable, String)

Aloca um novo Thread objeto.

Thread(IRunnable)

Aloca um novo Thread objeto.

Thread(String)

Aloca um novo Thread objeto.

Thread(ThreadGroup, Action, String, Int64)

Inicializa uma nova instância de Thread.

Thread(ThreadGroup, Action, String)

Inicializa uma nova instância de Thread.

Thread(ThreadGroup, Action)

Inicializa uma nova instância de Thread.

Thread(ThreadGroup, IRunnable, String, Int64, Boolean)

Aloca um novo Thread objeto para que ele tenha target como objeto de execução, tenha o especificado name como seu nome, pertença ao grupo de threads referido por group, tenha o especificado stackSizee herde os valores iniciais para variáveis locais de thread herdáveis InheritableThreadLocal se inheritThreadLocals for true.

Thread(ThreadGroup, IRunnable, String, Int64)

Aloca um novo Thread objeto para que ele tenha target como objeto de execução, tenha o especificado name como seu nome e pertença ao grupo de threads referido por group, e tenha o tamanho de pilha especificado.

Thread(ThreadGroup, IRunnable, String)

Aloca um novo Thread objeto para que ele tenha target como objeto de execução, tenha o especificado name como seu nome e pertença ao grupo de threads referido por group.

Thread(ThreadGroup, IRunnable)

Aloca um novo Thread objeto.

Thread(ThreadGroup, String)

Aloca um novo Thread objeto.

Campos

Nome Description
MaxPriority

A prioridade máxima que um thread pode ter.

MinPriority

A prioridade mínima que um thread pode ter.

NormPriority

A prioridade padrão atribuída a um thread.

Propriedades

Nome Description
AllStackTraces

Retorna um mapa de rastreamentos de pilha para todos os threads dinâmicos.

Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
ContextClassLoader

Retorna o contexto ClassLoader para este thread. -ou- Define o ClassLoader de contexto para este Thread.

Daemon

Testa se esse thread é um thread de daemon.

DefaultUncaughtExceptionHandler

Retorna o manipulador padrão invocado quando um thread é encerrado abruptamente devido a uma exceção não capturada. -ou- Defina o manipulador padrão invocado quando um thread é encerrado abruptamente devido a uma exceção não capturada e nenhum outro manipulador foi definido para esse thread.

Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
Id

Retorna o identificador deste Thread.

IsAlive

Testa se este thread está ativo.

IsInterrupted

Testa se esse thread foi interrompido.

IsVirtual

Retorna true se esse thread for um thread virtual.

JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
JniPeerMembers

Obtém os metadados JNI usados para invocar membros desse par Java.

Name

Retorna o nome desse thread. -ou- Altera o nome deste thread para ser igual ao argumento name.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
Priority

Retorna a prioridade desse thread.

ThreadGroup

Retorna o grupo de threads ao qual esse thread pertence.

ThresholdClass

Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API é compatível com a infraestrutura Mono para Android e não se destina a ser usada diretamente do seu código.

UncaughtExceptionHandler

Retorna o manipulador invocado quando esse thread é encerrado abruptamente devido a uma exceção não capturada. -ou- Defina o manipulador invocado quando esse thread for encerrado abruptamente devido a uma exceção não capturada.

Métodos

Nome Description
ActiveCount()

Retorna uma estimativa do número de encadeamentos ativos no java do encadeamento atual.

CheckAccess()

Determina se o thread em execução no momento tem permissão para modificar esse thread.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
CountStackFrames()
Obsoleto.

Gera UnsupportedOperationException.

CurrentThread()

Retorna uma referência ao objeto thread em execução no momento.

Destroy()
Obsoleto.

Gera UnsupportedOperationException.

Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
DumpStack()

Imprime um rastreamento de pilha do thread atual para o fluxo de erro padrão.

Enumerate(Thread[])

Copia para a matriz especificada todos os threads ativos no grupo de threads do thread atual e seus subgrupos.

Equals(Object)

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
GetStackTrace()

Retorna uma matriz de elementos de rastreamento de pilha que representam o despejo de pilha desse thread.

GetState()

Retorna o estado desse thread.

HoldsLock(Object)

Retorna true se e somente se o thread atual mantiver o bloqueio do monitor no objeto especificado.

Interrupt()

Interrompe este tópico.

Interrupted()

Testa se o thread atual foi interrompido.

JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Join()

Espera que este tópico morra.

Join(Int64, Int32)

Aguarda no máximo millis milissegundos mais nanos nanossegundos para que este tópico morra.

Join(Int64)

Espera no máximo millis milissegundos para que este tópico morra.

Notify()

Ativa um único thread que está aguardando no monitor desse objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
OnSpinWait()

Indica que o chamador está momentaneamente incapaz de progredir, até a ocorrência de uma ou mais ações por parte de outras atividades.

Resume()
Obsoleto.

Gera UnsupportedOperationException.

Run()

Se esse thread foi construído usando um objeto de execução separado Runnable , o método desse Runnablerun objeto será chamado; caso contrário, esse método não fará nada e retornará.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle.

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
Sleep(Int64, Int32)

Faz com que o thread em execução no momento entre em suspensão (interrompa temporariamente a execução) pelo número especificado de milissegundos mais o número especificado de nanossegundos, sujeito à precisão e exatidão dos temporizadores e agendadores do sistema.

Sleep(Int64)

Faz com que o thread em execução no momento entre em suspensão (interrompa temporariamente a execução) pelo número especificado de milissegundos, sujeito à precisão e exatidão dos temporizadores e agendadores do sistema.

Start()

Faz com que esse thread inicie a execução; a Java Virtual Machine chama o run método desse encadeamento.

Stop()
Obsoleto.

Gera UnsupportedOperationException.

Stop(Throwable)
Obsoleto.

Gera UnsupportedOperationException.

Suspend()
Obsoleto.

Gera UnsupportedOperationException.

ThreadId()

Retorna o identificador deste Thread.

ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até que seja despertado, normalmente sendo <notificado></em> ou <em>interrompido</em>.

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que seja ativado, normalmente sendo <notificado></em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Yield()

Uma dica para o agendador de que o thread atual está disposto a ceder seu uso atual de um processador.

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Um thread é um thread de execução em um programa.

(Herdado de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Um thread é um thread de execução em um programa.

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Um thread é um thread de execução em um programa.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a