Escriu per cercar…

Thread

Thread

15809

Els threads permeten executar seccions de codi en paral.lel (a la vegada) enlloc de sequencialment (un després de l’altre).

Tots els programes tenen almenys un thread quan s’executen, que s’anomena “main”, i és el responsable d’executar la funció main().

També hi ha altres threads que s’executen per defecte en una JVM, com pot ser el “garbage collector”.

Thread

Un thread és una seqüència d’instruccions que s’executen de manera separada del reste del progrmama.

Cada thread està representat per un objecte: una instància de la classe java.lang.Thread (o d’una subclasse).

Si un programa crea un o més threads a partir del thread “main” parlem d’un progrmama multi-thread.

La classe Thread té un mètode estàtic anomenat currentThread que et permet obtenir una referència a l’objecte thread que s’està executant actualment:

kotlin
val thread: Thread = Thread.currentThread() // the current thread

La classe Thread emmagatzema informació bàsica sobre el thread: el seu nom, identificador (long), prioritat i algunes altres característiques que es poden obtenir mitjançant els mètodes de la classe Thread.

La informació del thread principal

A continuació fem servir el thread main com exemple per obtenir les característiques fent-hi referències a través d’un objecte de la classe Thread.

kotlin
fun main() {
    val thread: Thread = Thread.currentThread() // main thread

    println("Name: ${thread.name}")
    println("ID: ${thread.id}")
    println("Alive: ${thread.isAlive}")
    println("Priority: ${thread.priority}")
    println("Daemon: ${thread.isDaemon}")
}

Totes les declaracions d’aquest programa són executades pel thread principal.

Podeu veure la informació general sobre aquest fil:

  • thread.name retorna el nom del thread.

  • thread.id retorna l’identificador únic del thread.

  • thread.isAlive ens indica si el thread s’ha iniciat i encara no ha mort.

  • thread.priority retorna la prioritat del thread. Cada thread té una prioritat que determina l’ordre d’execució: els threads amb una prioritat més alta s’executen abans que els threads amb prioritats més baixes.

  • t.isDaemoncomprova si el thread és un dimoni. Un “daemon thread” (prové de la terminologia UNIX) és un thread de baixa prioritat que s’executa en segon pla per realitzar tasques com la “garbage collection”, etc. La JVM no espera que els “daemon” threads s’aturin abans de sortir, mentre que si que espera als thread que no són dimoni per finalitzar l’execució del programa.

La sortida del programa:

Name: main
ID: 1
Alive: true
Priority: 5
Daemon: false

Cada característica es pot canviar configurant un valor nou:

kotlin
val thread: Thread = Thread.currentThread() // main thread

t.name = "hello"
println("New name: ${thread.name}") // New name: hello

Estàs llegint una vista prèvia.

Inicia sessió per llegir l'article complet. Qualsevol compte obre 4 articles gratuïts al mes; l'alumnat i el professorat llegeixen les pàgines del seu curs sense límit.

Inicia sessió