Pa rhuzamossa g. Java tutorial. Alkalmazasi teruletek. Cel. Pa rhuzamossa gi modellek. Ha egy processzor van...

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Pa rhuzamossa g. Java tutorial. Alkalmazasi teruletek. Cel. Pa rhuzamossa gi modellek. Ha egy processzor van..."

Átírás

1 Pa rhuzamossa g ö A program egyszerre tobb mindent is csinalhat ö Lehet segek: í Szamıtassal egyid ben IO í Tobb processzor: szamıtasok egyid ben í Egy processzor tobb programot futtat (process) ö tobbfelhasznalü s rendszer ö id osztasos technika í Egy program tobb vegrehajtasi szalbü l all (thread) Cel ö Hatekonysag novelese: ha tobb processzor van ö Tobb felhaszna lü kiszolga la sa í egy id ben í interakciü ö Program logikai tagola sa ö az egyik szal a felhasznalü i felulettel foglalkozik ö a masik szal a halü zaton keresztul kommunikal valakivel Alkalmazasi teruletek ö Sza mıta silag nehez problema k ö pl. id jaras-el rejelzes ö Valü s idejú alkalmazasok ö Opera ciü s rendszerek ö Folyamatszabalyoza si feladatok ö Szimulaciü k ö pl. agensek ö Elosztott rendszerek ö pl. repul teri helyfoglalas Pa rhuzamossa gi modellek ö Megosztott (shared) í Tobb processzor, ugyanaz a memü riaterulet ö Elosztott (distributed) í Tobb processzor, mindnek sajat memü ria í Kommunikaciü s csatornak, uzenetkuldes ö Mi van, ha csak egy processzor van? Ha egy processzor van ö A processzor kapcsolgat a kulonboz folyamatok kozott ö Mindegyiket csak kis ideig futtatja ö A pa rhuzamossa g la tszata ö A processzorid jü kihasznala sa í Blokkolt folyamatok nem tartjak fel a tobbit í A valtogata s is id igenyes! 1

2 Pa rhuzamossa g egy folyamaton belul ö Vegrehajta si sza lak (thread) ö Ilyenekkel fogunk foglalkozni ö Pehelys ly (Lightweight, keves koltsegú) ö Leginka bb a feladat logikai darabola sa bü l í De elkepzelhet, hogy kulonboz processzorokra kerulnek a szalak ö MegosztottÜ jelleg: kozos memü ria Szalak Java-ban ö Beepıtett nyelvi tamogatas: java.lang ö Nyelvi fogalom: (vegrehajtasi) szal, thread ö Tamogatü oszta ly: java.lang.thread Vigya zat! ö Nagyon nehez parhuzamos programot ırni! ö Az ember mar nem latja at ö Sok problema í kommunikaciü í szinkronizaciü í utemezes í interferencia Vegrehajta si sza lak letrehoza sa ö A f program egy vegrehajtasi szal ö Tova bbi vegrehajta si sza lak hozhatü k letre ö Egy Thread osztalyba tartozü objektumot letre kell hozni ö Az objektum start() metü dusa val indıtjuk a vegrehajtasi szalat ö A szal programja az objektum run() metü dusaban van Pelda new Thread(); ö Hat ez meg semmi kulonoset sem csinal, mert ures a run() 2

3 Pelda (new Thread()).start(); ö Hat ez meg semmi kulonoset sem csinal, mert ures a run() Pelda a run() feluldefinialasara (new MyThread()).start(); class MyThread extends Thread { while(true) System.out.println("Hi!"); Pelda a run() feluldefinialasara (new Thread(){ while(true) System.out.println("Hi!"); ).start(); Az elindıtas ö Nem eleg letrehozni egy Thread objektumot í A Thread objektum nem a vegrehajtasi szal í Csak egy eszkoz, aminek segıtsegevel kulonboz dolgokat csinalhatunk egy vegrehajtasi szallal ö Meg kell hıvni a start() metü dusat ö Ez automatikusan elindıtja a run() metü dust ö Ezt a run()-t kell feluldefinialni, megadni a sza l programja t Illusztra ciü { { { 3

4 Illusztra ciü { { { Illusztra ciü Illusztra ciü { { { { { { Illusztra ciü Illusztra ciü { { { { { { 4

5 Illusztra ciü Illusztra ciü { { { { { { Kerdes (new Thread()).start(); ö Hany szalon fut ez a program? Hany vegrehajtasi szal van? Mit csinal ez a program? (new MyThread()).start(); while(true) System.out.println("Bye"); class MyThread extends Thread { while(true) System.out.println("Hi!"); Feladat ö Prü baljuk ki, hogy mit csinal az el z program, de ö legyen harom szal í hozzunk letre ket peldanyt a MyThread osztalybü l í inicializaljuk a ket peldanyt kulonboz stringekkel í ezeket a stringeket kell kiırniuk 5

6 Mit kene csinalnia? ö Definia latlan ö U temezest l fugg ö A nyelv definıciü ja nem tesz megkotest az utemezesre ö Kulonboz platformokon / virtualis gepeken kulonboz keppen múkodhet ö A virtualis gep meghataroz(hat)ja az utemezesi strategiat ö De azon belul is sok lehet seg van ö Sok mindent l fugg (pl. h merseklett l) U temezes kulonboz platformokon ö Solaris alatt: egy szal addig fut, amıg csak lehet (hatekonyabb) ö NT alatt: id osztasos utemezes (igazsa gosabb) ö O sszefoglalva: ırjunk olyan programokat, amelyek múkodese nem erzekeny az utemezesre Pa rtatlansa g (fairness) ö Ha azt akarjuk, hogy minden szal egyszerreü, parhuzamosanü fusson ö Ha egy szal mar eleg sokatü dolgozott, adjon lehet seget mas szalaknak is yield() ö Ezen metü dus meghıva sa val lehet lemondani a vezerlesr l ö A Thread osztaly statikus metü dusa Mit csinal ez a program? (new MyThread()).start(); while(true){ System.out.println("Bye"); Thread.yield(); Feladat ö Irjuk be a yield()-eket a szalainkba! 6

7 A masik t ö Java-ban egyszeres orokl des ö Vegrehajta si sza lna l lesza rmaztata s a Thread osztalybü l í elhasznaljaü azt az egy lehet seget ö Megoldas: ne kelljen leszarmaztatni ö Megvalü sıtjuk a Runnable interfeszt, ami el ırja a run() metü dust ö Egy Thread objektum letrehozasanal a konstruktornak atadunk egy futtathatü objektumot Pelda a run() megadasara (new MyThread()).start(); class MyThread extends Thread { while(true) System.out.println("Hi!"); Pelda a run() megadasara (new Thread(new MyRunnable())).start(); class MyRunnable implements Runnable { while(true) System.out.println("Hi!"); Tipikus pelda class MyApplet extends Applet implements Runnable { // animacio megjelenıtese { (new Thread(this)).start(); Letrejott Eletciklus IO rendelkezesre all start() Futtathatü felebredes v. interrupt() yield() JVM notify() wait() Blokkolt sleep() Futü blokkolü IO Veget ert run() elfogy 7

8 Letrejott start() yield() stop() Veget ert Eletciklus JVM Futtathatü suspend() Futü run() elfogy notify() wait() IO rendelkezesre all felebredes v. interrupt() resume() Blokkolt sleep() blokkolü IO import java.util.*; import java.io.*; class SleepDemo extends Thread { while(true){ try { sleep(1000); catch (InterruptedException ie){ System.out.println(new Date()); public static void main(string[] args) { (new SleepDemo()).start(); while(true){ System.err.println(); import java.util.*; import java.io.*; class BlokkoloDemo extends Thread { while(true){ try { System.in.read(); catch (IOException ie){ System.out.println(new Date()); public static void main(string[] args) { (new BlokkoloDemo()).start(); while(true){ System.err.println(); Feladat ö A mez n (ami a keperny megfelel je) egy ny l es egy rü ka bü klaszik. A nyulat mi iranyıtjuk a szabvanyos bemenetr l az 'q', 'w', 'e', 'a', 's', 'd', 'y', 'x' es 'c' billentyúk segıtsegevel. A rü ka a ny l fele igyekszik. Az allatok a 8 veluk szomszedos mez re lephetnek at egy lepesben. A rü ka kb. ketszer olyan gyakran lep, mint a ny l, viszont minden iranyvaltoztatas el tt meg kell allnia. Szal leallıtasa ö A stop() metü dus nem javasolt. ö Bızzuk ra a szalra, hogy mikor akar megallni. ö Ha a run() egy ciklus, akkor szabjunk neki feltetelt. í Gyakran egy sleep() is van a ciklusban. í A feltetel egy flag-et figyelhet, amit kıvulr l atbillenthetunk. ö Feladat: allıtsuk le a nyuszit, ha megfogta a rü ka! 8

9 Pelda class MyApplet extends Applet implements Runnable { private boolean fut = false; { public void stop(){ { fut = true; (new Thread(this)).start(); public void stop(){ fut = false; while(fut){ // animacio egy lepese try{ sleep(100); catch(interruptedexeption e){ Az els problema: interferencia ö Ket vagy tobb szal, noha kulon-kulon jü k, egyutt megis butasagot csinalnak: a b = ab V ba í felulırjak egyma s eredmenyeit í inkonzisztenciat okoznak ö Peldaul ket szal ugyanazon az adaton dolgozik egyidejúleg class Szamla { int egyenleg; public void ratesz(int sszeg){ int ujegyenleg; ujegyenleg = egyenleg+ sszeg; egyenleg = ujegyenleg; Interferencia ellen: szinkronizaciü Az adatokhoz valü hozza feres szerializa la sa Kolcsonos kizaras Kritikus szakaszok vedelme ö Szemafor - mint vonatoknal í P es V múvelet í veszelyes programozas, rossz min segú kü d ö Monitor í adatok + múveletek kolcsonos kizarassal í jü l illeszkedik az objektum-elvú szemlelethez ö Irü -olvasü í J-ban nincs olyan nyelvi elem, mint pl. Ada protected Pelda: thread-safeü sza mla class Szamla { private int egyenleg; public synchronized void ratesz(int sszeg){ int ujegyenleg; ujegyenleg = egyenleg+ sszeg; egyenleg = ujegyenleg; 9

10 A synchronized kulcsszü ö Metü dusok ele ırhatjuk (de pl. interfeszekben nem!) ö Kolcsonos kizaras arra a metü dusra, s t ö Kulcs (lock) + varakozasi sor í A kulcs aze az objektume, amelyike a metü dus í Ugyanaz a kulcs az osszes szinkronizalt metü dusahoz 1 Miel tt egy szal belephetne egy szinkronizalt metü dusba, meg kell szereznie a kulcsot 2 Var ra a varakozasi sorban 3 Kilepeskor visszaadja a kulcsot ö A nyulas-rü kas feladatban hol van szukseg szinkronizaciü ra? Irjuk bele! class Szamla { private int egyenleg; public synchronized void ratesz(int sszeg){ int ujegyenleg; ujegyenleg = egyenleg+ sszeg; egyenleg = ujegyenleg; public synchronized void kivesz(int sszeg) throws SzamlaTullepesException { if( egyenleg < sszeg ) throw new SzamlaTullepesException(); else egyenleg -= sszeg; Szinkronizalt blokkok ö A synchronized kulcsszü vedhet blokk utasıtast is ö Ilyenkor meg kell adni, hogy melyik objektum kulcsan szinkronizaljon synchronized(obj){ ö Metü dus szinkroniza ciü ja val egyenertekú public void ratesz(int sszeg){ synchronized(this){ ö Ha a szamla objektum ratesz metü dusa nem szinkr. synchronized(szamla){ szamla.ratesz(100); Szinkronizalt blokkok (2) ö Sokszor gy hasznaljuk, hogy a monitor szemleletet megtorjuk ö Nem az adat múveleteire biztosıtjuk a kolcsonos kizarast, hanem az adathoz hozza ferni igyekv kü dba tesszuk ö A kritikus szakasz utasıtashoz hasonlıt ö Letjogosultsag: ha nem egy objektumban vannak azok az adatok, amelyekhez szerializalt hozzaferest akarunk garantalni í Er forrasok kezelese, tranzakciü k í Kes bb latunk peldat Statikus szinkronizalt metü dusok class A { static synchronized void m(){ ö Milyen objektum kulcsan szinkronizalunk? ö O nelemzes: az osztalyok futasi idejú reprezentaciü ja a virtualis gepben egy Class osztaly objektum - ezen ö Kerdes: ezek szerint futhatnak egyid ben szinkroniza lt statikus es pelda nymetü dusok? 10

11 Amikor nem kell szinkronizalni ö Atomi múveletek Java-ban: ertekadas volatile va ltozü knak í a volatile egy mü dosıtü szü í egyesek szerint meg ez sem kell primitıv tıpus valtozü k eseten, kiveve a long es a double valtozü kat ö Ha a jobboldalon nem szerepel a valtozü ö Ha mar tobb valtozü osszefugg (tıpusinvarians), akkor szerializaljuk a hozzaferest synchronized-dal ö Feladat: ez alapjan a nyulaszatbü l kivehet egy par szinkroniza la s wait - notify ö Szigna lokra hasonlıt ö Egy feltetel teljesuleseig blokkolhatja magat egy szal ö A feltetel (potencialis) bekovetkezeset jelezheti egy masik szal ö Alapfeladat: termel - fogyasztü (korlatos) bufferen keresztul kommunikalnak í egy termel, egy fogyasztü í tobb termel, tobb fogyasztü termel Termel -fogyasztü buffer termel() fogyaszt() fogyasztü A termel sza l definıciü ja public class Termel extends Thread { Buffer buffer; public Termel ( Buffer buffer ){ this.buffer = buffer; while(true){ char ch = (char) System.in.read(); buffer.termel(new Character(ch)); A termel sza l definıciü ja public class Termel extends Thread { Buffer buffer; public Termel ( Buffer buffer ){ this.buffer = buffer; while(true){ try{ char ch = (char) System.in.read(); buffer.termel(new Character(ch)); catch ( IOException e ){ 11

12 Korlatlan buffer, egy fogyasztü public class Buffer extends Sor { public synchronized Object fogyaszt(){ if( űres() ) wait(); return kivesz(); public synchronized void termel(object o){ betesz(o); notify(); Korlatlan buffer, egy fogyasztü public class Buffer extends Sor { public synchronized Object fogyaszt(){ if( űres() ) try{ wait(); catch(interruptedexception e){ return kivesz(); public synchronized void termel(object o){ betesz(o); notify(); Korlatlan buffer, egy fogyasztü public class Buffer extends Sor { public synchronized Object fogyaszt(){ if( űres() ) try{ wait(); catch(interruptedexception e){return null; return kivesz(); public synchronized void termel(object o){ betesz(o); notify(); Múkodes ö Minden objektumhoz tartozik a sima kulcshoz tartozü varakozasi soron kıvul egy masik, az n. wait-va rakoza si sor ö A wait() hatasara a szal bekerul ebbe ö A notify() hatasara az egyik varakozü kikerul bel le ö A wait() es notify() hıvasok csak olyan kü dreszben szerepelhetnek, amelyek ugyanazon az objektumon szinkronizaltak synchronized(obj){ obj.wait(); ö A szal megszerzi az objektum kulcsat, ehhez, ha kell, sorban all egy ideig (synchronized) ö A wait() hatasara elengedi a kulcsot, es bekerul a wait-varakozasi sorba ö Egy masik szal megkaparinthatja a kulcsot (kezd dik a synchronized) ö A notify() metü dussal felebreszthet egy wait-es alvü t, aki bekerul a kulcsos varakozasi sorba ö A synchronized vegen elengedi a kulcsot ö A felebredt alvü nak (is) lehet sege van megszerezni a kulcssot es tovabbmenni ö A synchronized blokkja vegen is elengedi a kulcsot 12

13 Korlatlan buffer, tobb fogyasztü public class Buffer extends Sor { public synchronized Object fogyaszt(){ while( űres() ) try{ wait(); catch(interruptedexception e){ return kivesz(); public synchronized void termel(object o){ betesz(o); notifyall(); Nincs szukseg busy waiting-re Feladatok ö Fejezzuk be a termel -fogyasztü feladatot a fogyasztü implementa lasa val ö Hogyan valü sıtanank meg a szemaforokat Java-ban? ö Es az ırü -olvasü problema t? ö Javıtsunk a nyulas-rü kas programunkon! A keperny re akkor kell kirajzolni a mez t, ha valami valtozas tortent Sza lak kommunika ciü ja ö Aszinkron leginka bb ö Szinkron kommunikaciü (pl. Ada randev ) helyett csak wait-notify szinkronizaciü van ö Megosztott es elosztott szemlelet egyarant ö Megosztott: kozos memü rian keresztul ö Elosztott: uzenetkuldes csatornakkal (Piped csatornak) ö Termel -fogyasztü Kozos memü rian keresztul ö A kommunika ciü ra haszna lt objektumokra referenciakat lehet atadni, eljuttatni a szalakba í pl. a rü ka a ny lrü l ıgy szerez informaciü t ö Vegletes esetben magat a futtathatü objektumot is megoszthatjuk: class A implements Runnable { // adatok, mᑺveletekkel A a = new A(); Thread t1 = new Thread(a); Thread t2 = new Thread(a); Piped csatornaosztalyok ö PipedInputStream, PipedOutputStream PipedReader, PipedWriter ö Egy bemenetit es egy kimenetit osszekapcsolunk ö A cs egyik vegere az egyik szal ır, a cs masik veger l a masik szal olvassa ö Vigya zat: az olvasa s blokkolü múvelet! í available(), ready() - bar ez utü bbival rosszak a tapasztalatok 13

14 PipedReader r = new PipedReader(); PipedWriter w = new PipedWriter(r); (new Termel Szal(w)).start(); (new FogyasztoSzal(w)).start(); public class Termel Szal extends Thread { Writer w; public Termel Szal( Writer w ){ this.w = w; while(fut){ char adat = // termel w.write(adat); w.flush(); Holtpont (deadlock) ö Nehany folyamat veglegesen blokkolü dik, arra varnak, hogy egy masik, szinten a holtpontos halmazban lev folyamat csinaljon valamit ö Az interferencia tokeletes kikuszobolese :-) ö T l sok a szinkronizaciü ö Gyakran er forra s-kezeles vagy tranzakciü k kozben ö Pelda: etkez filozü fusok (dining philosophers) Mit lehet tenni? ö Nincs univerzalis megoldas, a programozü dolga a feladathoz illeszked megoldas kidolgozasa ö Detektalas, megszuntetes (pl. timeout), el rejelzes, megel zes ö Megel zes: er forra sok sorrendbe a llıta sa, szimmetria megtorese, kozponti iranyıtas, veletlenszerú varakoztatas, stb. í pl. a filozü fusok class A { synchronized void m1(){ synchronized void m2(b b){ b.m1() class B { synchronized void m1(){ synchronized void m2(a a){ a.m1() A a = new A(); B b = new B(); class A { void m1(){ void m2(b b){ b.m1() class B { void m1(){ void m2(a a){ a.m1() A a = new A(); B b = new B(); Object o = new Object(); Egyik szalban Masik szalban a.m2(b); b.m2(a); Egyik szalban Masik szalban synchronized(o) {a.m2(b); synchronized(o) {b.m2(a); 14

15 Kieheztetes (starvation, livelock) ö A rendszer nem all le, a folyamatok mennek, de van olyan koztuk, amelyik nem tudja azt csinalni, amit szeretne ö Pl. tobb fogyasztü kozul az egyik el van hanyagolva. Vagy az egyik filozü fus sosem eszik. ö Amikor a folyamatra kerul a vezerles, kezd futni, de akkor epp nem teljesul a tovabbhaladasi feltetel ö Konnyen bekovetkezhet wait-notify mellett ö Kivedes/megel zes meg nehezebb, mint a holtpont eseten Priorita s ö A szalakhoz prioritas van rendelve ö Prioritasi szintek: 1 (MIN_PRIORITY) es 10 (MAX_PRIORITY) kozott í Rendszerszintú szalak prioritasa 11 ö A Java a prioritasi szintek kozott preemptıv utemezest ker: a magasabb prioritas futhat í Sajnos a JVM-nek nem kotelez ezt betartania í Ne ezen m ljon a programunk helyessege ö Egy szinten belul definialatlan í SUN GreenÜ szalak: kooperatıv í SUN NatıvÜ szalak: preemptıv Prioritas (folyt.) ö Ha egy szal futtathatü va valik (pl. felebred vagy elindul), es egy alacsonyabb prioritas fut eppen, akkor az atadja a vezerlest ö Prioritasi szint lekerdezese es beallıtasa: int getpriority() void setpriority(int priority) ö Szal letrehozasakor a letrehozott orokli a letrehozü prioritasat, ha mast nem adunk meg ö A ltala nos strategia: sokat dolgozü sza lnak kisebb prioritast erdemes adni Sza lcsoportok ö A sza lak sza lcsoportokba sorolhatü k í Szal letrehozasakor ö java.lang.threadgroup ö Logikailag osszetartozü szalak lehetnek egy csoportban ö A csoport maximalis prioritasa beallıthatü, a csoportbeli szalake ezt nem fogja meghaladni ö A szalak lekerdezhetnek informaciü kat a sajat csoportjukrü l ö A sza lcsoportok hierarchia ba szervezhet k Demonok ö Szalak lehetnek demonok ö Ha a nem demon szalak veget ernek, akkor a program is veget er, es a demon szalak a hatterben futnak tovabb ö Az elindıtas, azaz a start() el tt be kell allıtani boolean isdaemon() void setdaemon(boolean on) Meg nehany múvelet ö join() A futü szal blokkolü dik, amıg az a szal veget nem er, amelyiknek a join-jat meghıvta í id korlat adhatü meg ö interrupt() Egy blokkolt allapot szalat (sleep, wait) felebreszt. A felebredt szalban a blokkolü utasıtas helyen InterruptedException lep fel ö stop(), suspend() es resume() Elavultak, mert veszelyesek (helyesseg, holtpont) 15

Programozási nyelvek és módszerek Java Thread-ek

Programozási nyelvek és módszerek Java Thread-ek Programozási nyelvek és módszerek Java Thread-ek Laki Sándor lakis@inf.elte.hu 2006. május 3. 0-0 Szálak (Threads) Ahhoz, hogy egy mai rendszer m ködhessen több 10-100 folyamatnak kell futnia. A folyamatok

Részletesebben

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread Végrehajtási szálak Runnable, Thread Végrehajtási szálak Java-ban A Java program az operációs rendszer egy folyamatán (process) belül fut. A folyamat adat és kód szegmensekből áll, amelyek egy virtuális

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html 1 Kivételkezelés I. szokatlan, váratlan

Részletesebben

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni? A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály

Részletesebben

Concurrency in Swing

Concurrency in Swing Concurrency in Swing A szálkezelés a swing alkalmazásokban is fontos. Cél egy olyan felhasználói felület készítése, amely soha nem fagy, mindig válaszol a felhasználói interakciókra, bármit is csináljon

Részletesebben

Végrehajtási szálak - kiegészítések. Szinkronizálás, érvénytelenített metódusok helyettesítése

Végrehajtási szálak - kiegészítések. Szinkronizálás, érvénytelenített metódusok helyettesítése Végrehajtási szálak - kiegészítések Szinkronizálás, érvénytelenített metódusok helyettesítése Szinkronizálás Szinkronizálás szükségessége, példa: egy végrehajtási szál kiolvas egy adatstruktúrából egy

Részletesebben

Programozási technológia 2.

Programozási technológia 2. Programozási technológia 2. Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Párhuzamosság A számítógépek egy időben több feladatot is el tudnak látni Gyakran még egyszerű alkalmazásoktól is elvárt, hogy

Részletesebben

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21

C# Szálkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 C# Szálkezelés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Szálkezelés 2013 1 / 21 Tartalomjegyzék 1 Bevezetés 2 Szálkezelés 3 Konkurens Programozás Tóth Zsolt (Miskolci Egyetem)

Részletesebben

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o Miért Java? széleskörben elterjedt Micro Edition - beágyazott rendszerek, régi telefonok Standard Edition - PC, android ezen alapul Enterprise Edition - vállalati programok, web service-ek multiplatform

Részletesebben

Magas szintű programozási nyelvek 2 Előadás jegyzet

Magas szintű programozási nyelvek 2 Előadás jegyzet Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 12. gyakorlat 1 Távoli metódushívás Java-ban (RMI) Java-ban a távoli metódushívás ( Remote Method Invocation, RMI) egy

Részletesebben

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu

Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:

Részletesebben

Párhuzamosság. Java a párhuzamosítást több féle képpen támogatja.

Párhuzamosság. Java a párhuzamosítást több féle képpen támogatja. Java Szálkezelés Párhuzamosság Számító gépek egy időben több feladatot is el tudnak látni. Gyakran még egyszerű alkalmazásoktól is elvárt, hogy párhuzamosan több dologgal is foglalkozzanak. Például egy

Részletesebben

Objektumorientált programozás C# nyelven III.

Objektumorientált programozás C# nyelven III. Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és

Részletesebben

VIII. Szálak és animáció

VIII. Szálak és animáció VIII. Szálak és animáció 1. Bevezetés A mai korszerő operációs rendszerek multiuser-multitask rendszerek. Tehát az operációs rendszer egyszerre több feladattal is foglalkozik. Gondoljunk csak arra, hogy

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked

Részletesebben

Java programozási nyelv 4. rész Osztályok II.

Java programozási nyelv 4. rész Osztályok II. Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék

Részletesebben

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.

Részletesebben

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*; Java osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely

Részletesebben

OOP: Java 8.Gy: Abstract osztályok, interfészek

OOP: Java 8.Gy: Abstract osztályok, interfészek OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus

Részletesebben

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető

Részletesebben

S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat )

S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat ) S ha kettészelik is: balfelöl belőle Valamivel mindig - Valamivel mindiq több marad. (Nyugat 1919. 1049-1050. 1.) A hetvenéves Eötvös Loránd köszöntésekor Alexander Bernád filozófus így jellemezte:...

Részletesebben

Operációs rendszerek. 3. előadás Ütemezés

Operációs rendszerek. 3. előadás Ütemezés Operációs rendszerek 3. előadás Ütemezés 1 Szemaforok Speciális változók, melyeket csak a két, hozzájuk tartozó oszthatatlan művelettel lehet kezelni Down: while s < 1 do üres_utasítás; s := s - 1; Up:

Részletesebben

Az új be- és kimenet könyvtár

Az új be- és kimenet könyvtár Az új be- és kimenet könyvtár import java.io.ioexception; import java.io.fileinputstream; import java.io.fileoutputstream; import java.nio.channels.filechannel; import java.nio.bytebuffer; class Masol

Részletesebben

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés Kivételek kezelése (exception handling) Hibakezelés old style class Szamolo { void szamol( String s, int i ) { int d; if (i!= 0) d = (i+1)/i; else if (s!= null) d = s.length(); else if (i > 10) // applikációs

Részletesebben

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok

Részletesebben

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum

Részletesebben

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész Java Programozás 9. Gy: Java alapok Adatkezelő 5.rész 15/1 B ITv: MAN 2018.04.22 A Keresés funkció Programlogika: 1. A keresés az etm táblamodellben fog keresni, és a találat rekordokat átmásolja egy másik

Részletesebben

Osztályok. 4. gyakorlat

Osztályok. 4. gyakorlat Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum

Részletesebben

Szoftvertechnológia alapjai Java előadások

Szoftvertechnológia alapjai Java előadások Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2010/2011-2 félév, 11. gyakorlat (az előző 2 gyak közül az egyiken ZH volt, a másik szünet miatt elmaradt) 1 JAR fájl készítés A JAR (Java

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelık Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendı anyag vázlatát

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)

Részletesebben

Programozás II. ATM példa Dr. Iványi Péter

Programozás II. ATM példa Dr. Iványi Péter Programozás II. ATM példa Dr. Iványi Péter 1 ATM gép ATM=Automated Teller Machine Pénzkiadó automata Kezelő szoftvert szeretnénk írni Objektum-orientált módon 2 Követelmények Egyszerre csak egy embert

Részletesebben

Globális operátor overloading

Globális operátor overloading Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal

Részletesebben

Konkurens TCP Szerver

Konkurens TCP Szerver A gyakorlat célja: Konkurens TCP Szerver Megismerkedni a párhuzamos programozás és a konkurens TCP szerver készítésének az elméleti és gyakorlati alapjaival és egy egyidejűleg több klienst is kiszolgáló

Részletesebben

Java Programozás 11. Ea: MVC modell

Java Programozás 11. Ea: MVC modell Java Programozás 11. Ea: MVC modell 20/1 B ITv: MAN 2018.03.02 MVC Model-View-Controller A modell-nézet-vezérlő a szoftvertervezésben használatos szerkezeti minta. Az MVC célja elválasztani az üzleti logikát

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 04. 08. 9. Előadás Kivétel kezelés a kivétel (exception) egy esemény, mely futás közben megbontja a program normális futási folyamatát például kivétel dobódik amikor 0-val

Részletesebben

Programozás II. labor

Programozás II. labor Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés

Részletesebben

Abstract osztályok és interface-ek. 7-dik gyakorlat

Abstract osztályok és interface-ek. 7-dik gyakorlat Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,

Részletesebben

Java és web programozás

Java és web programozás Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float

Részletesebben

Java Programozás 1. Gy: Java alapok. Ismétlés ++

Java Programozás 1. Gy: Java alapok. Ismétlés ++ Java Programozás 1. Gy: Java alapok Ismétlés ++ 24/1 B ITv: MAN 2018.02.18 Feladat Készítsünk egy komplett konzolos alkalmazást, mely generál egy számot 0 és 100 között (mindkét határt beleértve), feladatunk

Részletesebben

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben Az emelt szintű informatika érettségi programozási feladatainak megoldása Java nyelven NetBeans IDE 8.1 környezetben Klement András 2016 Utolsó módosítás: 2016. május 25. Tartalomjegyzék Tartalomjegyzék

Részletesebben

Programozás I. Első ZH segédlet

Programozás I. Első ZH segédlet Programozás I. Első ZH segédlet Ezen az oldalon: kiírás az alapértelmezett (hiba) kimenetre, sztring konkatenáció, primitív típusok, osztály létrehozás, példányosítás, adattagok, metódusok Kiíratás alapértelmezett

Részletesebben

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes

Részletesebben

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit

Részletesebben

Java IX. telkezelés a Java-ban

Java IX. telkezelés a Java-ban Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes

Részletesebben

Java tutorial. Csomagok. A program tagolasa. Alrendszerek kialakıtasa. Csomag. Alrendszerek kialakıtasa

Java tutorial. Csomagok. A program tagolasa. Alrendszerek kialakıtasa. Csomag. Alrendszerek kialakıtasa Csomagok A program tagolasa í Tıpusdefinıcio k (oszta lyok, interfe szek) í Meto dusok í Blokk utasıta sok í Csomagok í Bea gyazott oszta lyok Csomag í A tıpusainkat csomagokba soroljuk í O sszetartoza

Részletesebben

Java programozási nyelv

Java programozási nyelv Szoftvertechnológia sáv Java programozási nyelv Dirk Louis-Peter Müller: Java (Belépés az internet világába) Panem kiadó, Budapest, 2002. Webvilág sorozat Készítette: Gregorics Tibor Vázlatos áttekintés

Részletesebben

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron

Részletesebben

OOP: Java 8.Gy: Gyakorlás

OOP: Java 8.Gy: Gyakorlás OOP: Java 8.Gy: Gyakorlás 43/1 B ITv: MAN 2019.04.10 43/2 Egy régebbi beszámoló anyaga 1. Feladat: Készítsen egy Szemely nevű osztályt a szokásos konvenciók betartásával, amely tárolja egy ember nevét

Részletesebben

Felhasználó által definiált adattípus

Felhasználó által definiált adattípus Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési

Részletesebben

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Programozási nyelvek II. JAVA EA+GY 1. gyakolat Programozási nyelvek II. JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2017/2018. őszi félév Tartalom 1 Amit tudni kell a félévről

Részletesebben

Java Programozás 3. Gy: Java GUI. Swing, AWT

Java Programozás 3. Gy: Java GUI. Swing, AWT Java Programozás 3. Gy: Java GUI Swing, AWT 35/1 B ITv: MAN 2018.02.25 Feladat Készítsük el az Emp osztály kezelő programját úgy, hogy ArrayList-et (listatömb, tömblista, rugalmas tömb) használunk. A java.util.arraylist

Részletesebben

Informatika terméktervezőknek

Informatika terméktervezőknek Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások

Részletesebben

A C# programozási nyelv alapjai

A C# programozási nyelv alapjai A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet

Részletesebben

Bánsághi Anna anna.bansaghi@mamikon.net

Bánsághi Anna anna.bansaghi@mamikon.net ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64

Részletesebben

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.

... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat

Részletesebben

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész

Java Programozás 6. Gy: Java alapok. Adatkezelő 2.rész Java Programozás 6. Gy: Java alapok Adatkezelő 2.rész 25/1 B ITv: MAN 2018.04.13 A feladat Feladat: folytassuk a panel életre keltését! - Alakítsuk ki a Lista panelt - Betöltéskor olvassuk be az adatokat

Részletesebben

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Függvények, csomagok Csomagok Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges számú osztályt tartalmazhat Pl.: java.util.scanner Könyvtárhierarhiát fed: Pl.: java/util/scanner.java Célja:

Részletesebben

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás

Részletesebben

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver

Overview. Service. Application Activity Activity 2 Activity 3. Fragment. Fragment. Fragment. Frag ment. Fragment. Broadcast Receiver ANDROID ALKALMAZÁSFEJLESZTÉS Android komponensek használata Activity Fragment Service Broadcast Recevier sicz- m e s z i a r. j a n o s @ n i k. u n i - o b u d a. h u Sicz-Mesziár János 2015. március

Részletesebben

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor Java Programozás 4. Gy: Java GUI Tipper, MVC kalkulátor 15/1 B ITv: MAN 2018.03.10 1. Feladat: Tipper Készítsük el a tippelős programunk grafikus változatát. Az üzleti logika kódja megvan, a felület pedig

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 6. Ugrólista (Skiplist) Definíció. Olyan adatszerkezet, amelyre

Részletesebben

OOP: Java 4.Gy: Java osztályok

OOP: Java 4.Gy: Java osztályok OOP: Java 4.Gy: Java osztályok. 36/1 B ITv: MAN 2019.03.02 Feladat Készítsen el egy Employee osztályt és egy Employee osztályt használó osztályt (EmpProgram). Az Employee osztálynak: van name és salary

Részletesebben

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna Processzusok 1 Uniprogramozás Program A futás várakozás futás várakozás Idő A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna 2 Multiprogramozás Program A futás vár futás

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:

Részletesebben

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése

Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás

Részletesebben

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat Segédanyag: Java alkalmazások gyakorlat Készítette: Szabó Attila 2009/2010-2 félév, 2. gyakorlat 1 Osztályok és objektumok default, public, protected, private láthatóság a metódusokra és adattagokra (első

Részletesebben

Programozási nyelvek Java

Programozási nyelvek Java Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is

Részletesebben

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia

Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek

Részletesebben

Java és web programozás

Java és web programozás Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:

Részletesebben

Java programozási nyelv 5. rész Osztályok III.

Java programozási nyelv 5. rész Osztályok III. Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot

Részletesebben

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok Grafikus felhasználói felületek készítése és eseménykezelés Java-ban Abstract Window Toolkit, a java.awt és java.awt.event csomagok Abstract Window Toolkit Absztraktizálás: az osztályok és funkcionalitások

Részletesebben

Java programozási nyelv 9. rész Kivételkezelés

Java programozási nyelv 9. rész Kivételkezelés Java programozási nyelv 9. rész Kivételkezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/24 Tartalomjegyzék

Részletesebben

JAVA PROGRAMOZÁS 2.ELŐADÁS

JAVA PROGRAMOZÁS 2.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,

Részletesebben

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl

Részletesebben

C# osztályok. Krizsán Zoltán

C# osztályok. Krizsán Zoltán C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC

Részletesebben

Kivételek. A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése

Kivételek. A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése Kivételek A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése Hiba Felhasználó butaságot csinál Speciális/abnormális számítási

Részletesebben

Smalltalk 2. Készítette: Szabó Éva

Smalltalk 2. Készítette: Szabó Éva Smalltalk 2. Készítette: Szabó Éva Blokkok Paraméter nélküli blokk [műveletek] [ x := 5. 'Hello' print. 2+3] Kiértékelés: [művelet] value az értéke az utolsó művelet értéke lesz, de mindet kiírja. x :=

Részletesebben

Java programozási nyelv 10. rész Input/output kezelés

Java programozási nyelv 10. rész Input/output kezelés Java programozási nyelv 10. rész Input/output kezelés Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/28 Tartalomjegyzék

Részletesebben

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: Operációs rendszerek MS Windows NT (2000) folyamatok Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok: szálak ütemezése végrehajtásra

Részletesebben

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14. Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14. Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

AWK programozás, minták, vezérlési szerkezetek 10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás

Részletesebben

7. K: JAVA alapok Konzultáció

7. K: JAVA alapok Konzultáció Objektum Orientált Programozás 7. K: JAVA alapok Konzultáció 35/1B IT MAN B IT v: 2017.05.03 MAN Hiba, biztonságos program 01. Szintaktikai hiba imt i = 0; system.out.println( alma ); for (int i = 0, i

Részletesebben

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák Gelle Kitti 2017. 10. 25. Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák 2017. 10. 25. 1 / 20 Hasítótáblák T 0 h(k 2)

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási

Részletesebben

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció

Se S r e ial a iza z t a ion o n (in n Ja J v a a v ) a Szerializáció Serialization (in Java) Szerializáció Java Serialization API Standard eljárás az objektumok állapotának adatfolyamba történő kiírására (elmentésére egy bájtszekvenciába), és visszatöltésére Perzisztencia

Részletesebben

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát

Részletesebben

BME MOGI Gépészeti informatika 4.

BME MOGI Gépészeti informatika 4. BME MOGI Gépészeti informatika 4. 1. feladat önálló feladatmegoldás Generáljon két 1 és 10 közötti véletlen egész számot, majd kiírja ezekre a számokra a tízes szorzótáblákat! Ha az első generált szám

Részletesebben

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {

abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,

Részletesebben

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában?

Szálkezelés. Melyik az a hívás, amelynek megtörténtekor már biztosak lehetünk a deadlock kialakulásában? Szálkezelés 1. A szekvencia diagram feladata az objektumok egymás közti üzenetváltásainak ábrázolása egy időtengely mentén elhelyezve. Az objektumok életvonala egy felülről lefelé mutató időtengely. A

Részletesebben

Algoritmusok és adatszerkezetek II.

Algoritmusok és adatszerkezetek II. Algoritmusok és adatszerkezetek II. Horváth Gyula Szegedi Tudományegyetem Természettudományi és Informatikai Kar horvath@inf.u-szeged.hu 5. Vágható-egyesíthető Halmaz adattípus megvalósítása önszervező

Részletesebben

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok

Részletesebben

JAVA PROGRAMOZÁS 3.ELŐADÁS

JAVA PROGRAMOZÁS 3.ELŐADÁS Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram

Részletesebben

Kivételkezelés a C++ nyelvben Bevezetés

Kivételkezelés a C++ nyelvben Bevezetés Kivételkezelés a C++ nyelvben Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Kivételkezelés a C++ nyelvben CPP9 / 1 Hagyományos hibakezelés Függvény visszatérési értéke (paramétere) hátrányai:

Részletesebben

117. AA Megoldó Alfréd AA 117.

117. AA Megoldó Alfréd AA 117. Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,

Részletesebben