Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java

Referat
8/10 (1 vot)
Conține 1 fișier: doc
Pagini : 19 în total
Cuvinte : 4995
Mărime: 343.58KB (arhivat)
Publicat de: Eftimie Niculae
Puncte necesare: 7
Profesor îndrumător / Prezentat Profesorului: ANCA VASILESCU
Proiect realizat la disciplina Sisteme Distribuite - Universitatea Transilvania Brasov, Facultatea de Matematica si Informatica

Extras din referat

Utilizarea thread-urilor în applet-uri

şi servlet-uri Java

1. Delimitări conceptuale

Spre deosebire de alte limbaje de programare (C/C++), Java permite programelor utilizarea mai multor fire de control (thread-uri). Un fir de execuţie (thread) este o secvenţă de instrucţiuni ale unui program executabil.

Cu alte cuvinte, programele pot executa două sau mai multe operaţii diferite în acelaşi timp. În realitate se execută numai un fir de execuţie este executat la un moment dat.

Pentru a da impresia că firele sunt executate simultan, maşina virtuală Java (JVM) comută rapid controlul de la un fir la altul, fiecare fir executându-se pentru scurt timp înainte de a trece controlul altui fir.

Firele de execuţie (threads) pot fi executate şi executa atât de programele Java simple, cât şi de applet-uri şi servlet-uri.

În cazul applet-urilor, navigatoarele Web alocă un thread pentru fiecare applet din pagină şi foloseşte thread-ul respectiv pentru apelurile metodelor de bază din acesta.

Servlet-urile sunt încărcate şi rulează pe servere Web multi-thread şi sunt capabile să trateze mai multe cereri simultan.

2. Fire de execuţie în Java

Orice aplicaţie rulează ca proces al sistemului de operare, fiecare proces deţinând un anumit număr de resurse alocate de către sistem (fişiere deschise, memorie alocată dinamic, fire de execuţie şi altele).

Un fir de execuţie (thread) poate fi privit ca fiind o unitate de execuţie a unui anumit proces. Fiecare fir de execuţie are asociate: o secvenţă de instrucţiuni, un set de regiştri procesor şi o stiva de memorie. Firele de execuţie procesează instrucţiunile aplicaţiei, fiecare dintre aceste fire putând rula în paralel, pe un procesor separat (în cazul maşinilor multi-procesor), ori în manieră concurentă (pe calculatoarele mono-procesor).

Limbajul Java include ca parte integrantă (în package-ul java.lang) clase suport pentru programare multi-thread, pentru crearea mai multor fire de execuţie într-un program. Toate firele de execuţie dintr-un program împart acelaşi spaţiu de adrese şi pot să comunice prin variabile comune, lucru care simplifică programarea.

Chiar dacă nu se defineşte explicit, la lansarea unei aplicaţii Java, a unui applet sau servlet, este creat automat un fir de execuţie central, acesta putând ulterior (implicit sau explicit) să creeze alte fire de execuţie.

Fiecărui thread i se asociază o prioritate, acestea fiind executate în ordinea priorităţii asociate, thread-ul cu prioritate mai mare fiind executat preferenţial faţă de cel cu prioritate mai mică. Un exemplu de fire de execuţie cu prioritate scăzută, rulând în fundal atunci când nici un alt fir nu poate fi rulat sunt demonii, care execută de obicei operaţii costisitoare în timp, independente de celelalte fire de execuţie.

De exemplu, se poate implementa un fir de execuţie demon pentru încărcarea unui obiect multimedia (fişier film, voce etc.) de pe reţea, necesitând un timp îndelungat de transfer.

Terminarea unei aplicaţii Java are loc atunci când se sfârşesc toate firele sale de execuţie sau când nu mai exista decât fire de tip demon. Finalizarea firului principal de execuţie nu implica terminarea automată a aplicaţiei.

Implementarea unui fir de execuţie poate fi realizata fie prin operaţiunea de derivare din clasa Thread a unei noi clase, fie prin implementarea interfeţei Runnable în cadrul unei clase a utilizatorului, lansarea făcându-se prin apelul metodei start, iar terminarea prin metoda stop. Mai multe fire de execuţie pot fi grupate în diverse grupuri, sincronizarea lor fiind realizată prin intermediul construcţiei synchronized.

Un fir de execuţie este format de fapt din doua elemente:

- mecanismul de fir de execuţie propriu-zis;

- codul executat de firul de execuţie.

Este nevoie de un mecanism prin care maşina virtuală Java să fie informată că un anumit obiect trebuie tratat ca un fir de execuţie şi mai ales care este "metoda principala" a acestui obiect (în sensul în care main() este "metoda principală" a unei aplicaţii).

În cazul utilizării derivării din clasa Thread, trebuiesc efectuate următoarele operaţii:

- crearea unei clase derivate din clasa Thread sau dintr-o clasă derivată din ea:

class MyThread extends Thread {

...

Preview document

Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 1
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 2
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 3
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 4
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 5
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 6
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 7
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 8
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 9
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 10
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 11
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 12
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 13
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 14
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 15
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 16
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 17
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 18
Utilizarea Thread-urilor în Applet-uri și Servlet-uri Java - Pagina 19

Conținut arhivă zip

  • Utilizarea Thread-urilor in Applet-uri si Servlet-uri Java.doc

Alții au mai descărcat și

Java - Tehnologia JINI

Dupa cum se stie, limbajul Java îsi trage radacinile dintr-un proiect al firmei Sun început înca din 1990 si condus de James Gostling. Proiectul a...

Pagini Web Dinamice cu PHP

Pagini Web dinamice cu PHP Ce este PHP? Un limbaj de scripting ce combina concepte de Perl, Java si C, facand ca invatarea acestuia sa fie foarte...

Analiza Algoritmilor

Analiza algoritmilor 1. Să se genereze o matrice pătratică de dimensiune n cu elementele 1,2,…,n2 așezate în spirală. Exemplu pentru o matrice...

Hackeri

Hackerii sunt pasionati ai informaticii, care, de obicei au ca scop „spargerea” anumitor coduri, baze de date, pagini web etc. Ei sunt considerati...

Curs Java

Introducere Scurt istoric Limbajul Java împreună cu mediul său de dezvoltare şi execuţie au fost proiectate pentru a rezolva o parte dintre...

Introducere Java

Programele sunt dezvoltate (concepute, editate, compilate, verificate) de catre programatori, si executate (folosite) de catre utilizatori....

Te-ar putea interesa și

Tehnologii Informatice - Aspecte Fundamentale

Capitolul 1 TEHNOLOGII INFORMATICE – aspecte fundamentale 1.1. Tehnologia 1.2. Informatica 1.3. Conceptul de integrarea tehnologiilor 1.1....

Ai nevoie de altceva?