Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare.
|
|
- Mary Hutchinson
- 6 years ago
- Views:
Transcription
1 Lucrarea 5 Fire de Execuţie în Java. Mecanisme de Sincronizare. În această lucrare vor fi prezentate mecanismele Java pentru programarea concurentă. Fire de Execuţie Există două moduri în care pot fi create noi fire de execuţie în Java. Primul mod constă în crearea unei subclase a clasei Thread şi suprascrierea metodei run(). Pentru fiecare fir de execuţie pe care dorim să-l rulăm trebuie să creăm un exemplar din noua clasă şi să-l lansăm apelând metoda start() a noului exemplar: public class FirThread extends Thread { public void run(){//aceasta este metoda care se execută concurent while(true) System.out.println("Iar eu sunt un firicel"); public static void main(string[] arg){ FirThread f=new FirThread(); f.start();//pornim run-ul lui f while(true) System.out.println("eu sunt firul principal"); Deoarece în Java nu avem moştenire multiplă, mecanismul anterior nu poate fi folosit întotdeauna. De aceea mai avem un mod de creare a unui nou fir de execuţie: crearea unei noi clase care să implementeze interfaţa Runnable, noua clasă trebuind să implementeze metoda run(). Pentru a porni un nou fir de execuţie se creează un exemplar din noua clasă care va fi pasat ca parametru la crearea unui obiect din clasa Thread. Firul se lansează în acelaşi mod, apelând metoda start a noului obiect Thread. public class FirRunnable implements Runnable { /** Creates new FirRunnable */ public void run(){//firul care se execută concurent
2 while(true) System.out.println("Iar eu sunt un firicel"); public static void main(string[] arg){ FirRunnable f=new FirRunnable();//exemplarul care trebuie pasat firului new Thread(f).start();//creăm firul şi-l pornim while(true) System.out.println("eu sunt firul principal"); Fiecare fir de execuţie are o prioritate, care este un număr din intervalul [MIN_PRIORITY,MAX_PRIORITY] şi care poate fi modificată cu ajutorul metodei: public final void setpriority(int newpriority) În general, atunci când există o competiţie pentru resurse sunt preferate firele care au prioritate mai mare dar nu există nici o garanţie în acest sens, şi nici că firul cu prioritatea cea mai mare va fi mereu în execuţie. Deci nu acesta va fi mecanismul care va fi folosit pentru definirea zonelor critice. Un fir poate fi setat ca fiind demon, înainte de lansarea sa în execuţie, folosind metoda: public final void setdaemon(boolean on) O aplicaţie java rulează până când: Se execută cu succes metoda exit() a clasei Runtime. Şi-au terminat execuţia toate firele nemarcate ca fiind demon. Firele pot fi grupate folosind obiecte din clasa ThreadGroup, prin folosirea unui constructor adecvat. Un grup poate să includă alte grupuri, acestea având o structură arborescentă, relaţiile între grupuri fiind de genul părinte-copil. Un fir poate avea acces la informaţiile legate de propriul grup, dar nu la informaţiile legate de alte grupuri, aici incluzându-se şi părintele. Dacă nu se specifică un anumit grup la crearea obiectului din clasa Thread, acesta va fi considerat ca făcând parte din grupul implicit.
3 Mecanisme de Sincronizare 1 Cea mai simplă metodă de sincronizare constă în folosirea unei metode join: 1. public final void join() throws InterruptedException 2. public final void join(long millis) throws InterruptedException 3. public final void join(long millis, int nanos) throws InterruptedException Prima metodă aşteaptă terminarea respectivului fir de execuţie, a doua aşteaptă cel mult millis milisecunde iar cea de-a treia mai aşteaptă şi nanos nanosecunde. Dacă firul a fost întrerupt de un altul este aruncată o excepţie InterruptedException, după care fanionul corespunzător este resetat. Un exemplu de utilizare al acestei metode este următorul, care adună elementele unui vector: /* * advector.java * * Created on 01 aprilie 2002, 14:19 */ /** * st */ public class advector extends Thread { static int v[]=new int[100];//vectorul pe care îl adunăm static int rez[]=new int[4];//aici memorăm rezultatele produse de fire private int index;//indexul firului de execuţie /** Creates new advector */ public advector(int numar) {//iniţializăm indexul firului de execuţie index=numar; public void run()//asta-i firul { int i; rez[index]=0; 1 În această lucrare este prezentat un rezumat. Pentru o descriere exhaustivă vă recomand Java Language Specification, cel puţin: volatile Fields synchronized Methods The synchronized Statement 17 Threads and Locks
4 for(i=index*25;i<(index+1)*25;i++)//algoritm clasic dar nu lucrează decât cu o parte din rez[index]+=v[i]; //vector /** args the command line arguments */ public static void main (String args[]) { int i; for(i=0;i<100;i++)//iniţializăm vectorul v[i]=i+1; advector fire[]=new advector[4]; for(i=0;i<4;i++) fire[i]=new advector(i); //creăm cele patru fire de execuţie for(i=0;i<4;i++) fire[i].start();//le pornim int suma=0; for(i=0;i<4;i++)//adunăm rezultatele produse de fire { try{ fire[i].join();//aşteptăm să moară firul i catch(interruptedexception ie) { suma+=rez[i];//adunăm System.out.println(suma); Fiecare fir de execuţie păstrează o copie de lucru pentru fiecare variabilă cu care lucrează, variabilele fiind partajate în memoria principală. În timpul execuţiei unui fir, acesta operează asupra acestor copii de lucru, memorate în memoria de lucru. Cel mai simplu mod în care se poate obţine o sincronizare între memoria de lucru şi memoria principală constă în declararea unei variabile ca fiind volatile 2. În cazul unei variabile declarate ca fiind volatile firul de execuţie trebuie să-şi armonizeze copia de lucru cu copia principală de fiecare dată când accesează variabila. În plus, operaţiile efectuate în memoria principală în numele unui fir asupra uneia sau a mai multor variabile volatile sunt executate în aceeaşi ordine în care le-a cerut firul de execuţie. Un mecanism mai sigur de sincronizare este dat de folosirea synchronized. O metodă declarată synchronized nu se va executa decât atunci când firul respectiv este "proprietarul" obiectului asociat metodei, la final obiectul fiind eliberat. În cazul unei 2 Acelaşi specificator este prezent şi în C, dar funcţionalitatea acestuia este asigurată de compilator, ceea ce face ca mecanismul să nu fie prea sigur în cazul în care există mai multe procesoare.
5 metode nestatice, se încearcă blocarea exemplarului a cărui metodă sincronizată este apelată. În cazul unei metode statice, se încearcă blocarea obiectului Class. Mecanismul este similar cu cel al mutexului, deşi este de fapt o extensie a monitorului. Exemplu: class Test { int count; synchronized void bump() { count++; static int classcount; static synchronized void classbump() { classcount++; Aceeaşi semnificaţie se poate obţine folosind instrucţiunea synchronized: class BumpTest { int count; void bump() { synchronized (this) { count++; static int classcount; static void classbump() { try { synchronized (Class.forName("BumpTest")) { classcount++; catch (ClassNotFoundException e) {... În cazul unei instrucţiuni de genul: synchronized ( Expression ) Block mai întâi se evaluează expresia care trebuie să aibă ca rezultat o referinţă non-nulă, după care se aşteaptă blocarea obiectului conţinut de referinţă, putându-se apoi trece la execuţia blocului de instrucţiuni, iar în final se efectuează deblocarea. Deoarece acest mecanism nu este suficient, în clasa Object avem câteva metode care pot fi folosite pentru sincronizare: 1. public final void wait() throws InterruptedException
6 2. public final void wait(long timeout) throws InterruptedException 3. public final void wait(long timeout, int nanos) throws InterruptedException 4. public final void notify() 5. public final void notifyall() Metodele wait fac ca firul apelant să aştepte până când un alt fir apelează metoda notify() sau notifyall() pentru acelaşi obiect sau, după caz, a expirat timpul specificat. Firul apelant al acestor metode trebuie să fie proprietarul monitorului obiectului căruia i se apelează metoda wait. Firul eliberează monitorul şi aşteaptă să fie notificat sau expirarea timpului după care aşteaptă reblocarea monitorului înainte de a continua execuţia. Metoda notify() "trezeşte" cel mult un fir, alegându-l în mod arbitrar atunci când sunt mai multe cele care aşteaptă după acelaşi obiect. Dacă doriţi să le deblocaţi pe toate, folosiţi metoda notifyall(). Mecanismul este similar cu variabilele condiţie de la Linux, de aceea wait poate fi folosit într-un context similar cu următorul: synchronized(exemplar){. exemplar.wait(); Probleme Propuse. 1. Să se determine dacă un element apare într-un vector oarecare, folosind n procesoare. 2. Să se determine pe ce poziţii apare un element într-un vector oarecare, folosind n procesoare. 3. O resursă poate fi utilizată de două tipuri de procese: albe şi negre. Atunci când resursa este folosită de procese albe ea nu mai poate fi folosită de procese negre. Este valabilă şi reciproca. Să se implementeze accesul la resursă, evitându-se înfometarea. 4. Să se sorteze elementele unui vector cu n procesoare. 5. Să se genereze toate numerele prime mai mici decât o anumită valoare, folosind n procesoare. 6. Să se coordoneze semafoarele de la capătul unui tunel cu o singură bandă, folosindu-se de senzorii de la fiecare capete care semnalizează intrarea şi ieşirea maşinilor, astfel încât să nu se permită intrarea pe la un capăt cât timp mai sunt maşini în tunel mergând în sens invers. Maşinile să fie simulate cu ajutorul firelor de execuţie.
Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte
Laborator 8 Java Crearea claselor de obiecte. Variabilele (campurile) clasei de obiecte Probleme rezolvate: Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Programul urmator (LotoConstante.java)
More informationLaborator 5 Instrucțiunile repetitive
Laborator 5 Instrucțiunile repetitive Instrucțiunea for Instrucțiunea for permite repetarea unei secvențe de instrucțiuni atâta timp cât o condiție este îndeplinita. În plus, oferă posibilitatea execuției
More informationAlocarea memoriei în C sub Linux
Costel Aldea Alocarea memoriei în C sub Linux Sunt trei funcţii C standard care se pot folosi pentru a aloca memorie: malloc(), calloc(), si realloc(). Prototipurile lor, după cum sunt definite în stdlib.h:
More informationCurs 5. Programare Paralela si Distribuita. Forme de sincronizare - Java. Curs 5 - PPD 1
Curs 5 Programare Paralela si Distribuita Forme de sincronizare - Java Curs 5 - PPD 1 Monitor in Java Fiecare obiect din Java are un mutex care poate fi blocat sau deblocat in blocurile sincronizate: Bloc
More information-modificatorul unei interfeţe este public sau abstract (implicit)
6.1. Interfeţe Java - interfeţele Java abstractizează complet metodele unei clase (interfaţa clasei) faţă de orice implementare; - folosind cuvântul rezervat interface (în loc de class) specificăm ce poate
More informationBazele multithreading
Curs 8 Bazele multithreading... 2 Clasa Thread şi interfaţa Runnable... 4 Crearea unui fir de execuţie... 4 Interfaţa Runnable... 4 Îmbunătăţiri aduse exemplului... 7 Moştenirea unui Thread... 9 Crearea
More informationCurs 8 Fire de executie
Curs 8 Fire de executie Ce este un fir de executie? Crearea unui fir de executie o Extinderea clasei Thread o Implementarea interfetei Runnable Ciclul de viata al unui fir de executie Stabilirea prioritatilor
More informationFişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct.
Fişiere in C++ Un fişier este o colecţie de date indicat printr-un nume şi o extensie. Numele este desparţit de extensie prin punct. Avantajul lucrului cu fisiere este evident, datele rezultate în urma
More informationLaborator 3 Java. Introducere in programarea vizuala
Laborator 3 Java Introducere in programarea vizuala 1. Pachetele AWT si Swing. 2. Ferestre 3.1. Introduceti urmatorul program JAVA: public class Pv public static void main(string args[ ]) JFrame fer=new
More informationTehnici avansate de programare
Tehnici avansate de programare Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Adnotarea elementelor Tehnici avansate de programare p.1/1 Cuprins Ce sunt
More informationTHREAD-URI (fire de execuţie) Crearea firelor de execuţie
THREAD-URI (fire de execuţie) In viaţa reală asistăm in permanenţă la mai multe acţiuni ce se desfăşoară in acelaşi timp. Acest fapt implică şi calculatoarele moderne să realizeze in acelaşi timp mai multe
More informationClasa Thread. Interfata Runnable
Curs 8 Bazele multithreading Clasa Thread si Interfata Runnable Mai multe fire de executie Sincronizarea Comunicarea intre fire de executie Suspendarea/reluarea firelor de executie Grupuri de fire de executie
More informationFisiere text in Java.
Fisiere text in Java. Doru Anastasiu Popescu Prelucrarea fisierelor text in Java Aspecte teoretice: http://cursuri.cs.pub.ro/~poo/wiki/index.php/input/output http://upm.ro/intranet/ecalin/cd_educational/cd/javac/cap3.htm
More informationIngineria Sistemelor de Programare. UML Diagrama Cazurilor de Utilizare 2016
Ingineria Sistemelor de Programare UML Diagrama Cazurilor de Utilizare mihai.hulea@aut.utcluj.ro 2016 Introducere UML UML UML = Unified Modeling Language Dezvoltat in cadrul Object Management Group In
More informationRezolvare fişă de laborator Java Iniţiere în limbajul Java
Rezolvare fişă de laborator Java Iniţiere în limbajul Java Ex 1: Scrie următorul program Java folosind JCreator apoi încercă să-l înţelegi. public class primulprg System.out.println("Acesta este primul
More informationUtilizarea formularelor in HTML
Utilizarea formularelor in HTML Formulare Un formular este constituit din elemente speciale, denumite elemente de control (controls), cum ar fi butoane radio, butoane de validare, câmpuri text, butoane
More informationCONFIGURAREA UNUI SERVER IRC IN LINUX. Bica Bogdan *
CONFIGURAREA UNUI SERVER IRC IN LINUX Bica Bogdan * In this exemple i show how to configure an irc server based on ircd dameon named ircu.this is the main file name ircd.conf and the most important.configure
More informationLenuta Alboaie Reţele de calculatoare
Programarea in retea - OOB- Lenuta Alboaie adria@info.uaic.ro 1 Cuprins Trimiterea si receptarea datelor in regim 2 Ideea: in timpul unei conexiuni cind sunt transmise date ( inband data ), si daca la
More informationFire de execuţie. Programare Orientată pe Obiecte
Fire de execuţie Programare Orientată pe Obiecte Fire de execuţie Ce este un fir de execuţie? Crearea unui fir de execuţie Ciclul de viaţă Terminarea firelor de execuţie Sincronizarea firelor de execuţie
More informationOperatori. Comentarii. Curs 1
Operatori atribuirea: = operatori matematici: +, -, *, /, % Este permisa notatia prescurtata de forma lval op= rval (ex: n += 2) Exista operatorii pentru autoincrementare si autodecrementare (post si pre)
More informationError! Bookmark not defined.
SEMINAR 06 CONTENTS Enuntul Problemei... 1 Repository... 2 Memory... 2 XML... 3 GUI... 4 Forma Selectie... 4 Forma Programator... 5 Forma Tester... 6 Java... 7 Mecanismul de Transmitere al Evenimentelor
More informationLucrarea de laborator nr. 4.NET Remoting 1
Lucrarea de laborator nr. 4.NET Remoting 1 4. Implementarea claselor Well Known (Server Activated) In cadrul acestei lucrari de laborator vom realiza cateva aplicatii care vor exemplifica conceptele fundamentale
More informationJavaScript - Intorducere. Și nu numai...
JavaScript - Intorducere Și nu numai... Ce facem azi Nu o sa va vină să credeți. Pe foaia albă vă scrieți numele și prenumele ȘI Povestim despre JavaScript Exemple de aplicare discutii și surprize mici
More informationUniversitatea Constantin Brâncuşi din Târgu-Jiu. Aplicații JAVA. Lect.dr. Adrian Runceanu
Universitatea Constantin Brâncuşi din Târgu-Jiu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 4 Applet-uri în Java 10.03.2016 Curs - Aplicatii Java 2 Applet-uri în Java 1. Ce este un applet? 2. Crearea
More information1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului n.
Observatii: Codul de mai jos a fost realizat si testat pe pagina online: https://www.tutorialspoint.com/compile_pascal_online.php 1. Să se determine de câte ori apare cifra c în scrierea în baza p a numărului
More informationIntroducere in AutoCAD 3D
Introducere in AutoCAD 3D Eu obisnuiesc sa spun ca diferenta dintre AutoCAD 2D si AutoCAD 3D este doar de 15 minute deoarece totul se reduce doar la a intelege cum functioneaza acest 3D si sistemul de
More informationProbleme consultații 20 ianuarie 2018
Algoritmi elementari Probleme consultații 20 ianuarie 2018 Problema 1: zerouri factorial Enunt Fiind dat un numar natural n, sa se determine numarul de cifre 0 cu care se termină factorialul numărului
More informationFire de execuţie. Ce este un fir de execuţie? Crearea unui fir de execuţie
Fire de execuţie Ce este un fir de execuţie? Crearea unui fir de execuţie Ciclul de viaţă Terminarea firelor de execuţie Fire de tip daemon Sincronizarea firelor de execuţie Monitoare Semafoare Probleme
More informationNivelul inferior de prelucrare a fişierelor
INTRĂRI ŞI IEŞIRI Operaţiile de I/E în limbajul C se realizează prin intermediul unor funcţii din biblioteca standard a limbajului. Majoritatea operaţiilor de I/E se realizează în ipoteza că datele sunt
More informationLaborator 5 Sisteme Lindenmayer. Temă
Laborator 5 Sisteme Lindenmayer. Temă 1. Parcurgerea unui pătrat. Următorul L-sistem Alfabet=F,+,-; Producţii= F -> F-F+F+F+F-F-F-F+F, + -> +, - -> - Axioma= F generează, cu interpretările standard (F
More informationScop: Crearea unei aplicatii ce exemplifica paternul MVVM. In plus se creaza si o comanda in WPF.
Laborator MVVM Scop: Crearea unei aplicatii ce exemplifica paternul MVVM. In plus se creaza si o comanda in WPF. Clasele implicate in acest pattern sunt date in figura de mai jos. Mai multe informatii
More informationTema 2 PL/SQL. 3. a. Creati o tabela numita emp_dup care să fie duplicata tabelei employees. Create table emp_dup as select * from employees
Tema 2 PL/SQL 1. Ce va afişa acest bloc? fname varchar2(20); lname varchar2(15) default fernandez ; DBMS_OUTPUT.PUT_LINE(fname lname); a. Va printa fernandez. b. Va returna o eroare deoarece variabila
More informationIngineria Sistemelor de Programare
Ingineria Sistemelor de Programare Interfete grafice (Swing) mihai.hulea@aut.utcluj.ro 2017 Scurt istoric AWT: Abstract Windowing Toolkit import java.awt.* Swing Java FX Swing Demo Libraria Swing Swing
More informationCurs 10 Applet-uri. Ce este un applet? Crearea unui applet. Curs 10
Curs 10 Applet-uri Ce este un applet? Crearea unui applet simplu Ciclul de viata al unui applet Interfata grafica cu utilizatorul Definirea si folosirea parametrilor Tag-ul Folosirea firelor de
More informationFire de execuţie în Java
TEHNOLOGII JAVA PENTRU DEZVOLTAREA APLICAŢIILOR LUCRARE DE LABORATOR 17 Fire de execuţie în Java I. SCOPUL LUCRĂRII Lucrarea de faţă are rolul de a prezenta şi familiariza studentul cu modul de construire
More information1. Funcţii referitoare la o singură înregistrare (single-row functions)
Laborator 4 Limbajul SQL 1. Funcţii referitoare la o singură înregistrare (single-row functions) 2. Funcţii referitoare la mai multe înregistrări (multiple-row functions) 1. Funcţii referitoare la o singură
More informationGestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire
Lucrarea 3 Gestionarea memoriei dinamice. Tablouri şi şiruri de caractere. Conversii de date. Operaţii de intrare / ieşire Cuprins Simbolul this...1 Colectorul de reziduuri (Garbage Collector)...4 Transmiterea
More informationGDB. Rulare gdb. Comenzi de bază GDB GDB. GDB poate fi folosit în două moduri pentru a depana programul:
GDB GDB Rulare gdb GDB poate fi folosit în două moduri pentru a depana programul: rulându-l folosind comanda gdb folosind fişierul core generat în urma unei erori grave (de obicei segmentation fault) Cea
More informationProiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP
Platformă de e-learning și curriculă e-content pentru învățământul superior tehnic Proiectarea Rețelelor 32. Controlul modelelor de trafic in retea prin alterarea atributelor BGP De ce ebgp? De ce ibgp?
More informationThread-uri. Continut. Thread-uri 1
Thread-uri Continut 1 Prezentare teoretică 1.1 Introducere 1.1.1 Diferente dintre thread-uri şi procese 1.2 Avantajele thread-urilor 1.3 Tipuri de thread-uri 1.3.1 Kernel Level Threads 1.3.2 User Level
More informationDynamic binding vs static binding. Programare Orientată pe Obiecte
Dynamic binding vs static binding Programare Orientată pe Obiecte Ce va afişa următorul program? class TestEgal{ public boolean equals ( TestEgal other ) { System.out.println( "In equals din TestEgal"
More informationSe cer 2 variante: una cu implementarea statica si a doua cu implementarea dinamica a structurilor de date necesare. Comentati variantele.
Lucrarea 1 SDA 03.04.2017 Sa se realizeze urmatoarele programe, in limbaj C: 1. Se primesc de la intrarea standard: un numar k si un sir infinit de numere naturale a i. Se afiseaza la iesirea standard,
More informationSincronizare thread-uri
Sincronizare thread-uri Continut 1 Fire de executie - Mecanisme de sincronizare 1.1 POSIX 1.1.1 Mutex 1.1.1.1 Initializarea/distrugerea unui mutex 1.1.1.2 Tipuri de mutexuri 1.1.1.3 Ocuparea/eliberearea
More informationSECTION 5 L1 - Group By and Having Clauses
SECTION 5 L1 - Group By and Having Clauses Clauza Group By 1. SELECT department_id, AVG(salary),MAX(salary) 2. SELECT job_id, last_name, AVG(salary) GROUP BY job_id; ORA-00979: not a GROUP BY expression
More informationCapitolul 1. Arhitectura Oracle. F. Radulescu. Curs: Utilizarea bazelor de date, anul IV C5.
Capitolul 1 Arhitectura Oracle 1 Serverul ORACLE Este un sistem de gestiune a bazelor de date relationale Userul poate lucra: Cu un client pe aceeasi masina cu serverul (de exemplu un client SQL*Plus ruland
More informationCapitolul 8 Funcţii în limbajul C
Obiectiv: stabilirea avantajelor pe care le aduce în programarea structurată folosirea funcţiilor. Activităţi: - Prezentarea funcţiilor definite de utilizator - Descrierea parametrilor formali şi a parametrilor
More informationAppleturi. Programare Orientată pe Obiecte
Appleturi Programare Orientată pe Obiecte Introducere program Java de dimensiuni reduse ce gestionează o suprafaţă de afişare (container) care poate fi inclusă într-o pagină Web. miniaplicatie. poate fi
More informationProgramare Orientată pe Obiecte în limbajul Java
Curs 4 Programare Orientată pe Obiecte în limbajul Java Programare Orientată pe Obiecte Cuprins Tipul enumerare Clase imbricate Clase şi metode abstracte Excepţii Tipuri de date enumerare enum public class
More informationCurs practic de Java
Curs practic de Java Curs - Cristian Frăsinaru acf@infoiasi.ro Facultatea de Informatică Universitatea Al. I. Cuza Iaşi Internaţionalizarea Curs practic de Java p.1/1 Cuprins Introducere Clasa Locale Formatarea
More informationFișiere de comenzi (BAT) sub DOS
L3 Fișiere de comenzi (BAT) sub DOS Un fișier de comenzi este un fisier text care conține una sau mai multe comenzi si / sau directive care se execută succesiv, fară intervenția directă a utilizatorului.
More informationCurs 8. Procesare paralela in Java
Curs 8 Procesare paralela in Java 1 Arhitecturi Paralele Clasificare arhitecturi paralele Clasificarea Flyn SISD - conventional SIMD - calcul vectorial MISD - scalcul sistolic MIMD cazul general SISD :
More informationRezolvarea exceptiilor
PL/SQL SECTIUNE 6 Rezolvarea exceptiilor Entering an incorrect username and/or password Forgetting to include the @ in an email address Entering a credit card number incorrectly Entering an expiration
More informationSISTEME DE OPERARE (SO) CURS 10. Asist. Univ. Dr. Mihai Stancu. Virtualizare
SISTEME DE OPERARE (SO) CURS 10 Asist. Univ. Dr. Mihai Stancu Virtualizare S u p o r t d e c u r s Virtual Machines Versatile Platforms for Systems and Processes Capitolul 1 Introduction to Virtual Machines
More informationPROGRAMARE ORIENTATĂ PE OBIECTE
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu PROGRAMARE ORIENTATĂ PE OBIECTE Lector dr. Adrian Runceanu 03.01.2014 1 Curs 15 Limbajul
More informationProbleme propuse pentru Testul de Laborator Semestrul I
Probleme propuse pentru Testul de Laborator Semestrul I Problema 1: Scrieti un program in C pentru rezolvarea ecuatiei de gradul 1 cu coeficienti reali. Valorile coeficientilor se citesc de la tastatura.
More informationProiectarea bazelor de date. PL/SQL Proceduri în PL/SQL(partea II-a) # 9. Adrian Runceanu
Proiectarea bazelor de date # 9 PL/SQL Proceduri în PL/SQL(partea II-a) 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 9 Proceduri în PL/SQL Proiectarea bazelor de date 2 Cuprins Proceduri în PL/SQL
More informationBirotică Profesională. Cursul 12
Birotică Profesională Cursul 12 Sumar Visual Basic for Applications (VBA) Tipuri de date Structuri de control Funcţii si proceduri Obiecte si colecţii VBA Mediu de programare destinat in special realizării
More information8. Tablouri. 8.1 Tipuri de dată simple şi tipuri de dată structurate
8. Tablouri Tablourile (arrays) reprezintă un tip important de structură de date şi sunt colecţii de obiecte de acelaşi tip reunite sub un singur nume. Uneori este necesar să referim anumite variabile
More informationMemorator funcţii predefinite C++ Funcţii matematice
Funcţii matematice Funcţia Prototipul funcţiei Fişierul pow(x,y) double pow (double x,double y); long double pow ( long double x, long double y); float pow (float x,float y); double pow (double x, int
More informationProgramul 1.1. Salut.java
1. COMPENDIU JAVA Prezenta lucrare presupune că cititorul deţine un nivel minimal de cunoştinţe despre programarea în limbajul Java. Există deja suficientă literatură legată de programarea în Java [1,
More informationAplicații JAVA. Lect.dr. Adrian Runceanu
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Aplicații JAVA Lect.dr. Adrian Runceanu Curs 6 Colecții în Java 01.04.2015 Curs - Aplicatii
More informationla Microsoft Office Communicator pentru ca modificarea selecţiei dispozitivului telefonic să se actualizeze.
QUICK START GUIDE Plug-in de selec ie a telefonului pentru caracteristica de control al apelurilor din Microsoft Office Communicator pentru Cisco Unified Presence versiunea 7.0(3) Prezentare generală 2
More informationProgramare orientată pe obiecte. 1. Pachete (packages) 2. Moştenire
Programare orientată pe obiecte 1. Pachete (packages) 2. Moştenire Organizarea claselor înrudite în pachete Pachet (package): set de clase înrudite Pentru a pune o clasă într-un pachet, trebuie scrisă
More informationPOO. Observer Pattern (prezentare bazata pe GoF)
POO Observer Pattern (prezentare bazata pe GoF) 1 Observator: :intentie Defineste o relatie de dependenta 1..* intre obiecte astfel incat cand un obiect isi schimba starea, toti dependentii lui sunt notificati
More informationLaborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. Pachete
Laborator 2 - Introducere in limbajul Java.Pachete.Interfete.Tratarea exceptiilor. 1. Pachete 2. Interfete 3. Tratarea exceptiilor Pachete Crearea unui pachet Folosirea membrilor unui pachet Importul unei
More informationLaborator 4 Java Colectii
Laborator 4 Java Colectii Scrieti, compilati si rulati toate exemplele din acest laborator: 1. Urmatorul exemplu foloseste diferite clase de colectii si adauga cate un element in aceste colectii import
More informationTOTAL STATION ROTATION ERROR AND CORRECTION IN SINGULARCH
TOTAL STATION ROTATION ERROR AND CORRECTION IN SINGULARCH Alexandra Dutcon*, Jan Vladimir Pavel Pauliny-Toth** * 1 Decembrie 1918 University Alba Iulia, Doctoral School; Alexandra_dutcon@yahoo.com ** ADV
More informationTipuri de date structurate
Tipuri de date structurate Problema 1 Să se citească un șir A de la tastatură, citirea șirului se termina la introducerea valorii 0. Să se construiască și să se tipărească șirul B de perechi (element,
More informationLaborator 10. SGBD-ul MySQL (partea I)
Laborator 10 SGBD-ul MySQL (partea I) 1. Introduceţi următoarea secvenţă PHP: $dbh = mysql_connect("localhost", "Costica", "mypass") or die("unable to connect to MySQL"); $selectdb = mysql_select_db('lucrudb');
More informationÎmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect).
Îmbunătăţiri aduse în limbajul C++ facilităţilor standard ale limbajului C (cele care nu ţin de conceptele programării orientate obiect). Supraîncărcarea numelui de funcţii (overloading) In C nu este permisa
More information[LABORATOR DE PROGRAMARE C++] Aritoni Ovidiu. Algoritmi STL
Algoritmi STL 1. Prezentare generală 2. Clasificare: Algoritmi nechirurgicali ; Algoritmi chirurgicali ; Algoritmi de sortare; Algoritmi generali; 3. Algoritmi nechirurgicali (Non-mutating algorithms)
More informationProiectarea bazelor de date
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie Departamentul de Automatică, Energie şi Mediu Proiectarea bazelor de date Lect.univ.dr. Adrian Runceanu 19.03.2013 Proiectarea bazelor
More informationCe este o clasă? Programare orientată pe obiecte. Ce este o clasă? Clase
Ce este o clasă? Programare orientată pe obiecte 1. Recapitulare 2. InformaŃii despre examen O clasă este în primul rând o descriere a obiectelor (instanńelor), clasei respective Clasa conńine unul sau
More informationLaborator 1 Java. Citirea datelor de la tastatura si afisarea datelor pe ecran
Laborator 1 Java Citirea datelor de la tastatura si afisarea datelor pe ecran In limbajul Java nu exista instructiuni specializate pentru citirea/scrierea datelor. Aceste operatii se realizeaza prin intermediul
More informationCOLEGIUL TEHNIC VICTOR UNGUREANU CÂMPIA TURZII INSTALAREA SI CONFIGURAREA UNUI SERVER DNS PE WINDOWS SERVER 2003
INSTALAREA SI CONFIGURAREA UNUI SERVER DNS PE WINDOWS SERVER 2003 DNS (Domain Name Service) este un protocol care translateaza numele de domenii in adrese IP. De exemplu numele de domeniu www.google.ro
More informationPNI SmartCAM. versiune Android. - manual de utilizare-
PNI SmartCAM versiune Android - manual de utilizare- Introducere: Acest manual se refera la instalarea si utilizarea aplicatiei PNI SmartCAM, software necesar monitorizarii atat camerei cu IP PNI 631W,
More informationDezvoltarea aplicaţiilor WEB
Dezvoltarea aplicaţiilor WEB Resurse webspace.ulbsibiu.ro/radu.kretzulescu/index.php Feedback: radu.kretzulescu@ulbsibiu.ro raducretulescu@gmail.com mobil: 0722/743508 Dacă nu mai poate aştepta până mâine!
More informationLucrarea nr. 2. Funcţii şi structuri în C++
Lucrarea nr. 2 Funcţii şi structuri în C++ Pe măsură ce programele cresc in complexitate şi dimensiune, ele trebuiesc împărţite în fragmente mai mici şi mai uşor de gestionat numite funcţii. Funcţiile
More informationCurs 8. Programare orientată obiect în Delphi (II)
Programare Delphi Curs 8 Programare orientată obiect în Delphi (II) http://docwiki.embarcadero.com/radstudio/en/classes_and_objects_index 1. Deriea claselor. După cum am văzut, în Delphi este definită
More informationProgramare orientată pe obiecte. 1. Clase şi obiecte (continuare) 2. Tablouri
Programare orientată pe obiecte 1. Clase şi obiecte (continuare) 2. Tablouri // Autor : Fred Swartz import javax.swing.*; public class KmToMiles { Metode: cum funcţionează un apel private static double
More information13. Java si XML Fisiere XML în aplicatii Java... XML si orientarea pe obiecte... Utilizarea unui parser SAX... Utilizarea unui parser DOM...
CUPRINS 1. Java ca limbaj de programare cu obiecte Diferente între limbajele Java si C................................... Tipuri clasã si tipuri referintã....................................... Structura
More informationLaborator 9. Programare orientată pe obiecte Laborator 9. 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea.
Laborator 9 1) Să se realizeze o aplicaţie care să rezolve ecuaţii de gradul al doilea. Interfaţa aplicaţiei va fi următoarea Casetelor text li se vor da denumirile: camp_a, camp_b, camp_c, rez. Evenimentului
More informationProgramare avansată Tipuri generice Colecții de date
Programare avansată Tipuri generice Colecții de date Problema Construiți o structură de date: o stivă de date, o listă înlănțuită, un vector, un graf, un arbore, etc. Care este tipul de date pe care îl
More informationProgramarea calculatoarelor
Programarea calculatoarelor #3 C++ Elemente introductive ale limbajului C++ 2016 Adrian Runceanu www.runceanu.ro/adrian Curs 3 Elemente introductive ale limbajului C++ 02.11.2016 Curs - Programarea calculatoarelor
More informationCursul 4 7 Martie
Cursul 4 7 Martie adiftene@infoiasi.ro 1 Din Cursurile trecute Forward Engineering Reverse Engineering Diagrame de Interacţiuni Diagrame de Secvenţă Diagrame de Colaborare 2 Diagrame Diagrame UML Diagrame
More informationUniversitatea Transilvania Brașov Facultatea de Inginerie Electrică și Știința Calculatoarelor Departamentul de Electronică și Calculatoare
Universitatea Transilvania Brașov Facultatea de Inginerie Electrică și Știința Calculatoarelor Departamentul de Electronică și Calculatoare Sisteme de operare curs 5 2012.03.27 ş.l. dr. ing. Kertész Csaba-Zoltán
More informationinformatii despre exceptia respectiva starea programului în momentul producerii acelei exceptii
Curs 3 Exceptii Ce sunt exceptiile? Avantajele exceptiilor "Prinderea" si tratarea exceptiilor (Instructiunile try-catch-finally) "Aruncarea" exceptiilor (Clauza throws, Instructiunea throw) Ierarhia claselor
More informationC13. INTERFATA PARALELA PROGRAMABILA (PPI) I8255A (PIO)
C13. INTERFATA PARALELA PROGRAMABILA (PPI) I8255A (PIO) 1.Descriere PIO 2. Arhitectura PIO 3. Programare PIO 4. PIO in PC 5. Aplicatii http://www.advancedmsinc.com/iocards/8255.htm http://www.eisti.fr/~ga/phy/iitr/ii05/tr.pdf
More informationAplicatii JAVA. JAVA Excepții în Java # 7. Adrian Runceanu
Aplicatii JAVA # 7 JAVA Excepții în Java 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 7 Excepții în Java 24.03.2017 Curs - Aplicatii Java 2 Excepții în Java 1. Ce sunt excepțiile? 2. Avantajele excepțiilor
More informationDatabase programming. Instructor Sanda Popescu
Database programming Instructor Sanda Popescu CONSTRANGERI pot fi considerate ca reguli ale bazei de date previn introducerea datelor invalide previn stergerea datelor daca exista dependenta cu alte tabele
More information1 Laborator 3: Liste Circulare si Liste Dublu Inlantuite
1.1 Obiective În lucrare sunt prezentate principalele operaţii asupra listelor circulare simplu înlănţuite: crearea, inserarea unui nod, ştergerea unui nod şi ştergerea listei. În a ua parte vor fi prezentate
More informationAppOBP > PrOBPT > class Timp import java.text.decimalformat;
AppOBP > PrOBPT > class Timp import java.text.decimalformat; public class Timp { private int hour; // 0-23 private int minute; // 0-59 private int second; // 0-59 // constructorul Timp initializeaza fiecare
More informationProgramare orientată pe obiecte
Universitatea Constantin Brâncuşi din Târgu-Jiu Facultatea de Inginerie şi Dezvoltare Durabilă Departamentul de Automatică, Energie, Mediuşi Dezvoltare Durabilă Programare orientată pe obiecte Lect.dr.
More informationLUCRAREA NR. 6 POINTERI
LUCRAREA NR. 6 POINTERI Un pointer este o variabilă care păstrează adresa unui obiect de tip corespunzător. Forma generală pentru declararea unei variabile pointer este: tip * nume_variabila; unde tip
More informationFire de execuţie în Java
Page 1 TEHNICI AVANSATE DE PROGRAMARE LUCRARE DE LABORATOR 8 Fire de execuţie în Java I. SCOPUL LUCRĂRII Lucrarea de faţă are rolul de a prezenta şi familiariza studentul cu modul de construire şi utilizare
More informationAplicatii JAVA. JAVA Programare în rețea # 8. Adrian Runceanu
Aplicatii JAVA # 8 JAVA Programare în rețea 2017 Adrian Runceanu www.runceanu.ro/adrian Curs 8 Programare în rețea 28.04.2017 Curs - Aplicatii Java 2 Programare în rețea copyright@www.adrian.runceanu.ro
More informationVariabile predefinite
Php(2) Variabile predefinite Variabile predefinite $GLOBALS = pot fi accesate toate variabilele globale care sunt accesibile scriptului PHP curent $_SERVER = contine o serie de variabile ale caror valori
More informationLaborator 1 Tehnologia Java
Laborator 1 Tehnologia Java Tehnologia Java este alcatuita dintr-un conglomerat de concepte dintre care amintim: limbajul de programare Java dezvoltat pe baza paradigmei obiect orientate; platforma de
More informationOverview of the OOA Process...
Object-Oriented Analysis and Modeling Object-oriented analysis (OOA) What are the relevant objects? How do they relate to one another? How do we specify/model a problem so that we can create an effective
More informationGHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV
GHID DE UTILIZARE A APLICAȚIEI MINISTRA PLAY PE SMART TV TV Deschide aplicația Ministra Play din bara de jos a interfeței TV. Selectează aplicația Ministra Play utilizând cursorul telecomenzii. Apar 4
More information