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




Fire de executie

Informatica


Fire de execu]ie

·   &nb 838p157i sp;    permit executarea simultan\ a mai multor p\r]i din program



·   &nb 838p157i sp;    constituie o versiune redus\ a unui proces

·   &nb 838p157i sp;    asem\n\ri : ruleaz\ independent [i simultan

·   &nb 838p157i sp;    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

·   &nb 838p157i sp;    utilitate : executarea unor opera]ii īn fundal

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

n   &nb 838p157i sp; prin extinderea clasei Thread

n   &nb 838p157i sp; 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

·   &nb 838p157i sp;    mainThread = new Thread(this) ;

·   &nb 838p157i sp;    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

·   &nb 838p157i sp;    init() - apelat\ la prima lansare a unui fir de execu]ie, locul unde se scrie codul de ini]ializare

·   &nb 838p157i sp;    start()- apelat\ la fiecare lansare, dup\ opera]iile de ini]ializare

·   &nb 838p157i sp;    stop()- apelat\ la terminarea firului de execu]ie, con]ine codul de terminare a unui fir de execu]ie

·   &nb 838p157i sp;    run()- apelat\ de metoda start, con]ine corpul firului de execu]ie

Denumirea firelor de execu]ie

·   &nb 838p157i sp;    Thread myThread = new Thread(this."Nume fir")

·   &nb 838p157i sp;    myThread.getName()

·   &nb 838p157i sp;    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: 1399
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 )