Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Fire de executie

java


Fire de executie

permit executarea simultan\ a mai multor p\r]i din program



constituie o versiune redus\ a unui proces

asem\n\ri : ruleaz\ independent [i simultan

deosebiri : la crearea unui nou proces (fork) este realizat\ o copie exact\ a procesului p\rinte : cod + date; la crearea unui fir de execu]ie nu este copiat decāt codul procesului p\rinte; toate firele de execu]ie au deci acces la acelea[i date, datele procesului original

utilitate : executarea unor opera]ii īn fundal

Declararea, instan]ierea [i distrugerea firelor de execu]ie

n     prin extinderea clasei Thread

n     prin implementarea interfe]ei Runnable

2.1 Creearea firelor de execu]ie prin extindrea clasei Thread

public class MyMain //wait for keyboard input

catch(java.io.IOException e)

cntThread.stop(); //stop thread

}

class CntThread extends Thread //sleep 1 second

catch(InterruptedException e)

}

}

Creearea firelor de execu]ie prin implementarea interfe]ei Runnable

import java.applet.* ;

import java.awt.* ;

public class TestThread extends Applet implements Runnable

}

public void run()

public boolean keyDown( Event evt, int key )

public void paint( Graphics g)

class CntThread implements Runnable

public void start()

}

public void run() //pauza de 1 sec

catch (InterruptedException e)

}

}

public void stop()

2.3 Instan]ierea unui fir de execu]ie : NEW

mainThread = new Thread(this) ;

myThread = new MyThreadClass();

2.4 Distrugerea unui fir de execu]ie : STOP, DESTROY

myThread = new MyThreadClass();

myThread.start();

myThread.stop();

myThread = null;

Nu este necesar\ distrugerea explicit\ a unui fir de execu]ie. Sistemul Java de colectare a gunoiului se ocup\ de acest lucru. El poate fi for]at s\ dezaloce resuresele alocate unui thread prin atribuirea cu null a variabilei care referea instan]a firului de execu]ie

3. Metode pentru firele de execu]ie

init() - apelat\ la prima lansare a unui fir de execu]ie, locul unde se scrie codul de ini]ializare

start()- apelat\ la fiecare lansare, dup\ opera]iile de ini]ializare

stop()- apelat\ la terminarea firului de execu]ie, con]ine codul de terminare a unui fir de execu]ie

run()- apelat\ de metoda start, con]ine corpul firului de execu]ie

Denumirea firelor de execu]ie

Thread myThread = new Thread(this."Nume fir")

myThread.getName()

myThread.setName()

3. Sincronizarea firelor de execu]ie

Un obiect sau o metod\ pot fi accesate de mai multe fire de execu]ie. Nu exist\ īns\ nici o garan]ie privind firul de execu]ie care va avea acces la un obiect la un moment dat, ceea ce poate conduce la rezultate imprevizibile. Pentru a evita acest lucru se folose[te cuvāntul cheie synchronized, care blocheaz\ un obiect pe perioada execut\rii unui bloc de cod.

public void incIndex()

Cuvāntul cheie synchronized poate fi folosit [i ca modificator al unei metode, asigurāndu-se utilizarea ei de c\tre un singur fir de execu]ie la un moment dat.

public void synchronized incIndex()


Document Info


Accesari: 1160
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )