Java/Thread: diferenças entre revisões
[edição verificada] | [edição verificada] |
Sem resumo de edição |
|||
Linha 8: | Linha 8: | ||
A ''thread'' <code>main</code> é responsável por executar o código no método inicial <code>public static void main(String... args)</code>, ''thread'' que é criada pela '''JVM''' ao iniciar uma aplicação Java. |
A ''thread'' <code>main</code> é responsável por executar o código no método inicial <code>public static void main(String... args)</code>, ''thread'' que é criada pela '''JVM''' ao iniciar uma aplicação Java. |
||
Para referenciar a ''thread'' '''main''' |
Para referenciar a ''thread'' '''main''', basta utilizar o método estático <code>currentThread()</code>. |
||
<source lang="java"> |
<source lang="java"> |
||
public static void main(String... args) { |
|||
Thread t = Thread.currentThread(); |
Thread t = Thread.currentThread(); |
||
System.out.println("Nome: " + t.getName() + " \t id: " + t.getId()); |
|||
} |
|||
</source> |
</source> |
||
'''Saída''' |
|||
Nome: main id: 1 |
|||
<code>getName()</code> foi utilizado para obter o nome da ''thread'', complementarmente há o método <code>setName(String)</code> que altera o nome da ''thread''. |
|||
<code>getId()</code devolve o valor numérico automaticamente atribuído quando a ''thread'' é criada. Esse valor é único e não é reutilizado quando a ''thread'' morre. |
|||
==Criando threads== |
==Criando threads== |
Revisão das 01h08min de 1 de julho de 2016
Cada objeto gerado pela classe Thread
representa um segmento de execução.
Cada um desses segmentos de execução podem ser executados em paralelo, possibilitando à aplicação a execução de instruções relativamente simultâneas.
A thread main
Toda aplicação tem ao menos uma thread em tempo de execução: a thread main
.
A thread main
é responsável por executar o código no método inicial public static void main(String... args)
, thread que é criada pela JVM ao iniciar uma aplicação Java.
Para referenciar a thread main, basta utilizar o método estático currentThread()
.
public static void main(String... args) {
Thread t = Thread.currentThread();
System.out.println("Nome: " + t.getName() + " \t id: " + t.getId());
}
Saída
Nome: main id: 1
getName()
foi utilizado para obter o nome da thread, complementarmente há o método setName(String)
que altera o nome da thread.
getId()</code devolve o valor numérico automaticamente atribuído quando a thread é criada. Esse valor é único e não é reutilizado quando a thread morre.
Criando threads
Thread()
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
Thread(ThreadGroup group, String name)
Métodos estáticos
activeCount()
currentThread()
dumpStack()
enumerate(Thread[] tarray)
getAllStackTraces()
getDefaultUncaughtExceptionHandler()
holdsLock(Object obj)
interrupted()
setDefaultUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)
sleep(long millis)
sleep(long millis, int nanos)
yield()
Métodos de instância
checkAccess()
countStackFrames()
getContextClassLoader()
getId()
getName()
getPriority()
getState()
getThreadGroup()
getUncaughtExceptionHandler()
interrupt()
isAlive()
isDaemon()
isInterrupted()
join()
join(long millis)
join(long millis, int nanos)
run()
setContextClassLoader(ClassLoader cl)
setDaemon(boolean on)
setName(String name)
setPriority(int newPriority)
setUncaughtExceptionHandler(Thread.UncaughtExceptionHandler eh)
start()