Threads in Java. Threads. Die Klasse Thread. Erzeugen eines neuen Threads. Threads. Ein Thread. Alle Threads eines Programms A B C.
|
|
- Günter Wetzel
- vor 7 Jahren
- Abrufe
Transkript
1 Threads Ein Thread ist ein eigenständiges Programmstück, das parallel zu anderen Threads laufen kann kann mit einem Prozeß verglichen werden, läuft jedoch auf einer feineren Stufe ab Ein Prozeß ist ein Instrument, um ein komplettes Programm auszuführen Innerhalb eines Prozesses können mehrere Threads parallel ablaufen Alle Threads eines Programms teilen sich einen gemeinsamen Adressraum Adressräume von Prozessen sind streng getrennt können auf gleiche Variablen zugreifen Programm / Prozess A Programm / Prozess A B C Ein Thread Mehrere Threads Threads in Java Threads sind direkter Bestandteil der Sprache Java sind immer Instanzen einer Klasse, die das Interface Runnable implementiert Runnable deklariert nur die (abstrakte) Methode void run() run() enthält alle im Thread auszuführenden Anweisungen Instanzen von Klassen, die Runnable implementieren, heißen (Thread)-Targets kommunizieren durch Zugriff auf Instanz- oder Klassenvariablen Aufruf von Methoden, die innerhalb von run() sichtbar sind werden gesteuert durch die Klasse Thread (aus java.lang.thread) Thread implementiert das Interface Runnable Jede Instanz von Thread (oder einer von Thread abgeleiteten Klasse) ist Target eines Threads (kann als Thread ausgeführt werden) FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 2 Die Klasse Thread Konstruktoren public Thread() public Thread(String name) public Thread(Runnable target) public Thread(Runnable target, String name) Methoden void run() void start() throws IllegalThreadStateException static void sleep(long millis) finale boolean isalive() Generischer Name Thread-<nummer> Thread-Name Thread-Target Enthält auszuführenden Programmcode Wenn Thread schon gestartet true wenn Thread gestartet wurde final void setname() final String getname() final void setpriority(int prio) final int getpriority() FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 3 Erzeugen eines neuen Threads Zum Erzeugen eines Threads muss eine Klassen von Thread abgeleitet werden die Methode run() überschrieben werden Gestartet wird ein Thread durch den Aufruf von start() Anschließend wird die weitere Ausführung automatisch an die Methode run übertragen Direkter Aufruf von run würde keinen neuen Thread erzeugen public class SimpleThread MyThread thread = new MyThread(); Out.println("Starting thread..."); try Thread.sleep(20); catch (InterruptedException e) thread.stop(); // Deprecated!!! Out.println("Thread has been stopped!"); class MyThread extends Thread int counter=0; while(true) Out.println(getName()+ : +counter++); Würde wie ein normaler Methodenaufruf aus dem Programm-Ausgabe Starting thread... laufenden Thread behandelt Thread-0: 1 Thread-0: 2.. Thread-0: 321Thread has been stopped! FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 4
2 Beenden eines Threads Beispiel Ein Thread sollte nicht mit der Methode stop() beendet werden Es ist nicht definiert und auch nicht voraussagbar, wann der Thread beendet wird Threads am besten durch Verwendung eines Flags beenden Variable z.b. boolean stopmythread zeigt an, ob Thread stoppen soll Target Thread überprüft die Variable stopmythread regelmässig Beendet die Methode run(), wenn die stopmythread gleich true ist Damit sofort auf stop reagiert wird, muss entweder die Variable volatile sein, oder Mit dem Schlüsselwort volatile werden Variablen gekennzeichnet, die asynchron (außerhalb des aktuellen Threads) modifizierbar sein sollen. der Zugriff auf die Variable synchronisiert sein FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 5 class MyStopThread extends Thread private volatile Thread thread = this; //private volatile boolean cancel = false; /* Die Methode stop() kann nicht überschrieben werden da sie final ist */ mystop() thread = null; //cancel = true; Thread thisthread=thread.currentthread(); int counter = 0; while (thread == thisthread) // while (!cancel) Out.print(currentThread()+": ); Out.println(counter++); public class MyStopThreadExample MyStopThread thread = new MyStopThread(); Out.println("Starting thread..."); try Thread.sleep(20); catch (InterruptedException e) FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 6 thread.mystop(); Out.println("Thread has been stoped"); Out.print("Thread is alive: ); Out.println(thread.isAlive()); Programm-Ausgabe (Beispiel) Starting thread... Thread[Thread-0,5,main]: 1.. Thread[Thread-0,5,main]: 5 Thread has been stoped Thread is alive:true Thread[Thread-0,5,main]: 60 Unterbrechungsanforderungen Beispiel (interrupt und isinterrupted) Das richtige Mass für die Abfragehäufigkeit des Stop-Flags ist in der Praxis schwierig zu finden Wird Stop-Flag zu oft abgefragt, werden unnötig Ressourcen verbraucht Wird Stop-Flag zu selten abgefragt, ist die Zeit bis zum Stop zu lang Die Klasse Thread stellt hierfür folgende Methoden zur Verfügung interrupt() Setzt ein (Abbruch-)Flag, das eine Unterbrechungsanforderung signalisiert public boolean isinterrupted() Liefert true, wenn das Abbruch-Flag gesetzt ist public static boolean interrupted() Liefert den Status des Abbruch-Flags beim aktuellen Thread Entspricht dem Aufruf von currentthread().isinterrupted() und anschließendem Zurücksetzen des Abbruchflags auf initialen Wert false FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 7 public class ThreadInterrupt MyInterruptThread thread = new MyInterruptThread(); System.out.println("Starting thread..."); try Thread.sleep(100); catch (InterruptedException e) System.out.println("isAlive: +thread.isalive()); thread.interrupt(); System.out.println("isAlive: +thread.isalive()); class MyInterruptThread extends Thread int counter = 0; if (isinterrupted()) break; try Thread.sleep(10); catch (InterruptedException e) System.out.println(e); interrupt(); System.out.println(counter++); Abbruchflag wird zurückgesetzt Programm-Ausgabe Starting thread isalive: true 6 Java.lang.InterruptedException: sleep interrupted 7 isalive: false FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 8
3 Die Methode sleep Das Interface Runnable Mit Hilfe der folgenden Methoden kann ein Thread pausieren public static void sleep(long millis) Aktueller Prozeß wird für millis Millisekunden angehalten public static void sleep(long millis, int nanos) Aktueller Prozeß wird für millis Millisekunden und nanos Nanosekunden angehalten Tatsächliche Genauigkeit hängt von der Zielarchitektur ab Unter Windows ist es etwa 1ms sleep muss in einem try-catch Block gekapselt werden (kann während der Wartezeit eine Ausnahme vom Typ InterruptedException auslösen) Beim Starten eines Java-Programms wird automatisch ein Thread für die Ausführung des Hauptprogramms angelegt Die Methode sleep kann somit auch dazu verwendet werden das Hauptprogramm pausieren zu lassen Nicht alle Klassen, die als Thread laufen sollen, können von Thread abgeleitet werden Ist eine Klasse schon Bestandteil einer Vererbungshierarchie, kann sie nicht mehr von Thread abgeleitet werden (keine Mehrfachvererbung in Java) Anstatt einen Thread durch Ableiten der Klasse Thread, kann man ihn auch durch Implementieren der Interfaces Runnable erzeugen Das Interface Runnable enthält nur eine einzige Methode public abstract void run() Jede Klasse, deren Instanzen als Thread laufen sollen muss das Interface Runnable implementieren (auch Thread selbst) Um eine Instanz einer Klasse die Runnable implementiert als Thread laufen zu lassen muss man Ein neues Thread-Objekt erzeugen Konstruktor erhält Thread-Target Die Methode start() von Thread aufrufen C c = new C(); Thread t = new Thread(c); t.start(); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 10 Runnable (Beispiel) Wo ist der Fehler? class A public class RunnableExample class Count extends Thread public class CountThread int counter; long maxnumber; Instanz von B soll als Thread laufen public Count(long maxnumber) Count c = new Count(10); B b = new B(); this.maxnumber = maxnumber; c.start(); class B extends A B Kann nicht von Thread abgeleitet werden Thread thread = new Thread(b); System.out.println("Starting thread..."); for(long i=0; i<=maxnumber; i++) new Thread(c).start(); Count2 c2 = new Count2(10); counter = 0; while(true) Ruft die run-methode der Klasse B auf System.out.println("Int Count: "+i); c2.start(); new Thread(c2).start(); if (Thread.interrupted()) try break; Thread.sleep(200); class Count2 catch (InterruptedException e) long maxnumber; System.out.println(counter++); thread.interrupt(); System.out. println("thread has been stopped"); public Count2(long maxnumber) this.maxnumber = maxnumber; for (long i=0; i<=maxnumber; i++) Geht nicht da Count2 keine Methode start() kennt System.out.println("Int Count2: "+i); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 12
4 Synchronisationsprobleme class T1 extends Thread Person p; public T1(Person p) this.p = p; System.out.println(p.getName()); class T2 extends Thread Person p; public T2(Person p) this.p = p; p.setname("peter","barth"); p.setname("wolfgang","weitz"); class Person String name; String surname; setname(string n, String s) name = n; surname = s; FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 13 public String getname() return name + " " + surname; public class NameSync Person p = new Person(); T1 t1 = new T1(p); T2 t2 = new T2(p); t2.start(); t1.start(); Mögliche Programmausgaben Peter Barth Wolfgang Weitz Peter Weitz Wolfgang Barth Synchronisation mittels synchronized Um Threads zu synchronisieren gibt es in Java das Konzept des Monitors Ein Monitor kapselt einen kritischen Bereich (Programmteil, der nur von einem Programmteil auf einmal durchlaufen werden darf) mit Hilfe einer automatischen Sperre Sperre wird beim Betreten des Bereichts gesetzt Verlassen zurückgesetzt Ist die Sperre beim Eintritt in einen Monitor gesetzt, muss der aktuelle Prozeß warten, bis die Sperre freigegeben wird Das Monitor-Konzept wird in Java durch das Schlüsselwort synchronized realisiert Es kann eine komplette Methode oder ein Block innerhalb einer Methode geschützt werden public class SyncedThreads extends Thread static int counter = 0; Thread thread1 = new SyncedThreads(); Thread thread2 = new SyncedThreads(); thread1.start(); thread2.start(); try Thread.sleep(1000); catch (InterruptedException e) thread1.stop(); thread2.stop(); Mehrere Instanzen synchronized(getclass()) von SyncedThread System.out.println(counter++); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 14 Synchronisation von Methoden Animation public class SyncedFuncThread extends Thread int number; Thread thread1 = new SyncedFuncThread(10); Thread thread2 = new SyncedFuncThread(20); thread1.start(); thread2.start(); try Thread.sleep(2000); catch (InterruptedException e) thread1.stop(); thread2.stop(); public SyncedFuncThread(int n) number = n; for (int i = 0; i < 10; i++) Output.printRow(number); class Output static synchronized void printrow(int number) for (int i = 0; i < 10; i++) System.out.print(number + " "); int n = 0; double w; while (n < 10000) w = Math.sqrt(n++); System.out.println(); Ohne synchronized Mit synchronized Eine Animation ist das aufeinanderfolgende Anzeigen einer Sequenz von Einzelbildern Trägheit des menschlichen Auges sorgt für die Illusion einer zusammenhängenden Bewegung Probleme bei der Animation Einzelbilder müssen im richtigen Timing angezeigt werden Zu wenig Bilder pro Zeiteinheit führen zu ruckelnder Animation Sollen zu viele Bilder gezeichnet werden, können Bildteile verloren gehen Darstellung der Animation darf die Interaktivität eines Programms nicht beeinflussen Einzelbilder müssen mit Hilfe von Double-Buffering oder ähnlichen Techniken gezeichnet werden Naive Verwendung der paint/repaint-methoden von Java führt zu starkem Flackern FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 16
5 Animation in Java Einfach Animation (ohne eigenen Thread) Eine Animation kann in Java dadurch realisiert werden, dass in einer Schleife die Methode repaint wiederholt aufgerufen wird Aufruf von repaint führt zum internen Aufruf der paint-methode paint erzeugt dann das jeweils aktuelle Einzelbild Die Methode paint muss wissen, welches Bild bei welchem Aufruf erzeugt werden soll Meist wird hierzu ein Schleifenzähler verwendet, der das aktuelle Bild bezeichnet Nach der Ausführung von paint wartet der Aufrufer eine gewisse Zeitspanne Anschließend wird der Schleifenzähler erhöht und erneut paint aufgerufen Das ganze wird solange wiederholt, bis die Animation beendet ist FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 17 startanimation() public class SimpleAnim extends Frame int count = 0; paint(graphics g) SimpleAnim window = new SimpleAnim(); count = (count + 10) % getwidth(); g.fillrect(count, 175, 50, 50); try // 25 frames per second (fps) catch (InterruptedException e) public SimpleAnim() super("simple animation"); setbackground(color.blue); addwindowlistener(new WindowAdapter() windowclosing(windowevent e) ); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 18 Verwendung von Threads Einfach Animation (in eigenem Thread) Damit Programme, die Animationen enthalten, durch diese nicht komplett lahm gelegt werden, sollten alle repaint-schleifen in eigenen Threads laufen Zeitverzögerungen in die repaint-schleifen verlegt werden Haupt-Thread eines Animations-Programms hat dann genug Zeit, um die Bildschirmausgabe durchzuführen weitere Events zu bearbeiten public class AnimWThread extends Frame int x = 100, y = 10; int dx = 10, dy = 10; AnimWThread window = new AnimWThread(); startanimation() Thread thread = new Thread(this); try // 25 fps catch (InterruptedException e) Zur Verwendung mehrerer Threads muß die Fensterklasse das Interface Runnable implementieren Die Methode run() überschreiben eine Instanzvariable vom Typ Thread anlegen FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 1 public AnimWThread() paint(graphics g) super("simple animation with thread"); x +=dx; setbackground(color.yellow); if(x>getwidth()-50 x<0) dx = -dx; addwindowlistener(new WindowAdapter() y +=dy; if(y>getheight()-50 y<0) dy = -dy; g.fillrect(x, y, 50, 50); windowclosing(windowevent e) ); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 20
6 Reduzierung des Bildschirmflackerns Vor jedem Aufruf von paint wird zunächst der gesamte Inhalt des Fensters gelöscht Es erscheint somit kurz ein vollständig leerer Hintergrund Dies führt zu mehr oder weniger starkem Flackern der Animation Bildschirmflackern kann unterschiedlich unterdrückt werden 1. Bildschirm nicht löschen (nur bei nicht bewegten Animationen möglich) Aufruf von repaint ruft zunächst die Methode update der Klasse Component update(graphics g) g.setcolor(getbackground()); g.fillrect(0,0,width,height); g.setcolor(getforeground()); paint(g); Ersetzen durch update(graphics g) paint(g); 2. Nur den wirklich benötigen Bildschirmteil löschen und neu zeichnen 3. Double-Buffering (im Hintergrund zeichnen, fertige Zeichnung anzeigen) FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke Bildschirm nicht löschen public class AnimWThread extends Frame int x = 100, y = 10; int dx = 10, dy = 10; AnimWThread window = new AnimWThread(); startanimation() Thread thread = new Thread(this); try // 25 fps catch (InterruptedException e) paint(graphics g) x +=dx; if(x>getwidth()-50 x<0) dx = -dx; y +=dy; if(y>getheight()-50 y<0) dy = -dy; g.fillrect(x, y, 50, 50); public AnimWThread() super("simple animation with thread + (without clearing the frame) ); setbackground(color.yellow); addwindowlistener(new WindowAdapter() windowclosing(windowevent e) update(graphics g) paint(g); ); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke Bildschirm nicht löschen 2. Nur den benötigten Bereich löschen Bei bewegten Animationen kann es sinnvoll sein, nur die Teile des Bildschirms zu löschen, die im aktuellen Animationsschritt leer sind im vorangegangenen Schritt Grafikelemente enthielten Hierzu wird wiederum das automatische Löschen des Bildschirms durch Überlagern der Methode update verhindert In jedem Animationsschritt müssen alle benötigten Informationen über den vorangegangenen Schritt vorhanden sein Die Applikation muss sich dann selbst um das Löschen der relevanten Bildbereiche kümmern FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 24
7 2. Nur den benötigten Bereich löschen public class AnimWThread extends Frame int x = 100, y = 10; int dx = 10, dy = 10; AnimWThread window = new AnimWThread(); startanimation() Thread thread = new Thread(this); try // 25 fps catch (InterruptedException e) paint(graphics g) g.setcolor(getbackground()); g.fillrect(x, y, 50, 50); x +=dx; if(x>getwidth()-50 x<0) dx = -dx; y +=dy; if(y>getheight()-50 y<0) dy = -dy; g.setcolor(color.black); g.fillrect(x, y, 50, 50); public AnimWThread() super("simple animation with thread + (clear only part of the frame) ); setbackground(color.yellow); addwindowlistener(new WindowAdapter() windowclosing(windowevent e) update(graphics g) paint(g); ); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke Double-Buffering Double-Buffering ist ein universelles Mittel gegen Bildschirmflackern Bei jedem Animationsschritt werden zunächst alle Bildschirmausgaben in einen Buffer (Offscreen-Image) geschrieben Sind alle Ausgaben abgeschlossen, wir das Offscreen-Image auf die Fensteroberfläche kopiert 1. Zeichnen Graphics 2. Kopieren Offscreen-Image Offscreen-Image Prinzipelle Funktionsweise des Double-Bufferings in Java Ein Fensterobjekt beschafft sich durch Aufruf der Methode createimage ein Offscreen-Image und speichert es in einer Instanzvariablen Mittels getgraphics erhält man einen Grafikkontext zu dem Image Alle Bildschirmausgaben erfolgen auf den Offscreen-Grafikkontext Bildschirm Bildschirm Sind alle Ausgabeoperationen abgeschlossen, wird das Offscreen-Image mittels drawimage in das Ausgabefenster kopiert FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 26 Erweitern der Klasse Frame Eine Klasse DoubleBufferFrame Double-Buffering läßt sich in Java komplett kapseln Hierzu leitet man von der Klasse Frame eine neue Klasse DoubleBufferingFrame ab Die neue Klasse enthält zwei private Membervariable dbimage enthält das Offscreen-Image dbgraphics enthält den Offscreen-Grafikkontext Zusätzlich muss die Methode update geeignet überschrieben werden In update wird paint mit dbgraphics als Argument aufgerufen paint sendet dann alle Grafikbefehle auf das Offscreen-Image Zum Schluß wird mittels g.drawimage(dbimage,0,0,this) das Offscreen- Image auf dem Bildschirm angezeigt Alle Klassen, die von DoubleBufferingFrame abgeleitet sind, unterstützen nun das Double-Buffering automatisch Damit können schon bestehende Programme nachträglich flackerfrei gemacht werden, ohne dass eine einzige Zeile der eigentlichen Ausgaberoutinen geändert werden muss FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 27 public class DoubleBufferFrame extends Frame update(graphics g) private Image dbimage; // Initialising double buffer private Graphics dbgraphics; if (dbimage == null resized) private boolean resized; resized = false; dbimage = createimage( public DoubleBufferFrame() this.getsize().width, addcl(); this.getsize().height); dbgraphics = dbimage.getgraphics(); public DoubleBufferFrame(String s) super(s); // Clear background addcl(); dbgraphics.setcolor(getbackground()); dbgraphics.fillrect(0, 0, Auf Änderung der Fenstergröße reagieren this.getsize().width, void addcl() this.getsize().height); addcomponentlistener( // Paint foreground new ComponentAdapter() dbgraphics.setcolor(getforeground()); paint(dbgraphics); componentresized(componentevent e) // Show offscreen resized = true; g.drawimage(dbimage, 0, 0, this); ); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 28
8 Animation mit Double-Buffering (Beispiel) Double-Buffering Beispiel public class DoubleBufferExample extends DoubleBufferFrame int xb = 100, yb = 100, xs = 150, ys = 150; int dx = 10, dy = 10, angle = 0; double rad; DBExample window = new DBExample(); public DoubleBufferExample() super("double-buffering example"); addwindowlistener(new WindowAdapter() windowclosing(windowevent e) ); try // 25 fps catch (InterruptedException e) angle = (angle + 10) % 360; rad = angle*math.pi/180; xb += dx; if (xb>getwidth()-70 xb<0) dx = -dx; yb += dy; if (yb>getheight()-70 yb<0) dy = -dy; xs = xb (int)(35*math.sin(rad)); ys = yb (int)(35*math.cos(rad)); startanimation() g.filloval(xs, ys, 20, 20); Thread thread = new Thread(this); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 2 paint(graphics g) g.setcolor(color.blue); g.filloval(xb, yb, 50, 50); g.setcolor(color.green); FH-Wiesbaden --- Medieninformatik --- SS Prof. Dr. Ulrich Schwanecke 30
2.2 Prozesse in Java
2.2 Prozesse in Java! Java sieht kein Schlüsselwort für Prozesse vor, sondern bestimmte Klassen und Schnittstellen. Mit anderen Worten: der Prozessbegriff wird mit Mitteln der Objektorientierung eingeführt.
Mehr5. Threads, Serverprozesse und Benachrichtigungen
5. Threads, Serverprozesse und Benachrichtigungen Threads allgemein Threads in Android: Handler und Messages Services: Local, Remote, Binding Benachrichtigungen Entwicklung mobiler Anwendungen Europäische
MehrMultithreading und Animationen in Java
Multithreading und Animationen in Java Manuel Rädle Was ist eine Animation Schnell aufeinanderfolgende Anzeige einer Sequenz von Einzelbildern, Texten oder Objekten Die Bildfolge erscheint als zusammenhängende
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 16. Java: Threads für Animationen 1 Motivation
MehrDr. Monika Meiler. Inhalt
Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer
MehrProgrammierung mit Threads in Java
Programmierung mit Threads in Java Harald Kosch and Matthias Ohlenroth Institut für Informationstechnologie Universität Klagenfurt H. Kosch Threads in Java 1 Inhalt Grundlagen: Threads und Datenlokalität
MehrMotivation. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 20: Threads. Inhalt. Ein Beispiel zur Motivation
Universität Osnabrück 1 Motivation 3 - Objektorientierte Programmierung in Java Führt ein Applet eine lange Berechnung aus, so erfolgt keine Reaktion auf die Betätigung des Stop-Buttons am Browser bzw.
MehrNebenläufigkeit mit Java
Nebenläufigkeit mit Java Einheit 02: Eigenschaften & kritische Abläufe Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Eigenschaften von Threads Name, Priorität, Zustand Zustandsübergänge
MehrParallele Prozesse. Prozeß wartet
Parallele Prozesse B-66 Prozeß: Ausführung eines Programmes in seinem Adressraum (zugeordneter Speicher) Parallele Prozesse: gleichzeitig auf mehreren Prozessoren laufende Prozesse p1 p2 verzahnte Prozesse:
MehrParallele Prozesse Prozeß Parallele Prozesse verzahnte Prozesse Nebenläufige Prozesse: Threads Vorlesung Software-Entwicklung / Folie 131 Ziele:
Parallele Prozesse SWE-131 Prozeß: Ausführung eines sequentiellen Programmstückes in dem zugeordneten Speicher (Adressraum). Veränderlicher Zustand: Speicherinhalt und Programmposition. Parallele Prozesse:
MehrBitmaps und Animationen
Bitmaps und Animationen 1 Themenübersicht 1. Bitmaps 1. Die Klasse Image 2. Laden und Anzeigen von Bildern 3. Skalierungen und Transformationen 2. Animationen 1. Animationen mit Threads 2. Bildschirmflackern
Mehr8.6 Visualisierung der Sortieralgorithmen
8.6 Visualisierung der Sortieralgorithmen 8.6.1 Problemstellung Schauen Sie sich den folgenden Quelltext eines Java-Applets an: import java.awt.*; import javax.swing.*; import java.awt.event.*; public
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
MehrSchritt 1 - Ein Spielfeld
Schritt 1 - Ein Spielfeld Wir beginnen mit zwei einfachen Java-Klassen, dem eigentlichen Spielfeld und dem Applet zum Anzeigen des Spielfeldes (und später der Buttons und der anderen Bedienelemente). Hier
MehrThread-Konzept in objektorientierten Programmiersprachen. Threads. Threads in Java
Thread-Konzept in objektorientierten Programmiersprachen 1 Threads ein Thread ist ein eigenständiges Programmfragment, das parallel zu anderen Teilen eines Programmes ablaufen kann alle Threads eines Programmes
MehrPraktikum aus Softwareentwicklung 2, Stunde 5
Praktikum aus Softwareentwicklung 2, Stunde 5 Lehrziele/Inhalt 1. Threads Threads Threads sind parallele, oder auf Rechnern mit nur einer CPU quasi-parallele, Programmabläufe in Java. Sie können beispielsweise
Mehr12. Threads in Java. Sequentielle Abarbeitung (2) Beispiel: Thread (1) Sequentielle Abarbeitung (1)
12. Threads in Java Einführendes Beispiel 12. Threads in Java 12. Threads in Java Einführendes Beispiel Sequentielle Abarbeitung (2) Ein Thread ist eine Folge von Anweisungen, die unabhängig von anderen
MehrEinführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch
Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative
MehrParallele und funktionale Programmierung Wintersemester 2015/ Übung Abgabe bis , 10:00 Uhr
3. Übung Abgabe bis 10.11.2015, 10:00 Uhr Aufgabe 3.1: Java-Synchronisation a) An welchen Stellen im Code kann das Schlüsselwort synchronized verwendet werden? b) Wie nennt sich die Synchronisations-Art,
MehrNebenläufige Programmierung in Java: Threads
Nebenläufige Programmierung in Java: Threads Wahlpflicht: Fortgeschrittene Programmierung in Java Jan Henke HAW Hamburg 10. Juni 2011 J. Henke (HAW) Threads 10. Juni 2011 1 / 18 Gliederung 1 Grundlagen
MehrSynchronisation in Java. Invisible Web
Synchronisation in Java Studienprojekt Invisible Web Tang Zhihong Synchronisation in Java Synchronisationsproblem Monitore Wait und notify PipedInputStream und PipedOutputStream Synchronisation von Collections
MehrJava Game Development Fabian Birzele Programmierpraktikum 2008 / 2009
Java Game Development Fabian Birzele Programmierpraktikum 2008 / 2009 Fabian Birzele, LMU Institut für Informatik, Lehrstuhl für Praktische Informatik und Bioinformatik, 2008: Programmierpraktikum 1 Ziele
MehrParallele und verteilte Anwendungen in Java
Parallele und verteilte Anwendungen in Java Bearbeitet von Rainer Oechsle 3., erweiterte Auflage 2011. Buch. 416 S. Hardcover ISBN 978 3 446 42459 3 Format (B x L): 20,3 x 24,5 cm Gewicht: 1068 g Weitere
MehrNeben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter
Kapitel 1 Der vierte Tag 1.1 Vererbung Neben der Verwendung von Klassen ist Vererbung ein wichtiges Merkmal objektorientierter Sprachen. Unter Vererbung versteht man die Möglichkeit, Eigenschaften vorhandener
MehrJava Concurrency Utilities
Java Concurrency Utilities Java unterstützt seit Java 1.0 Multithreading Java unterstützt das Monitorkonzept mittels der Schlüsselworte synchronized und volatile sowie den java.lang.object Methoden wait(),
MehrThread-Synchronisation in in Java. Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen
Thread-Synchronisation in in Java Threads Wechselseitiger Ausschluss Bedingte Synchronisation Beispiel: Warteschlangen Die Klasse Thread Die Die Klasse Thread gehört zur zur Standardbibliothek von von
MehrObjektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java
9 Übungen: Applets Objektorientierte Programmierung OOP Objektorientierte Programmierung (OOP) mit Java 1. Java-Applet mit Text 2. Java-Applet mit Bild und Text 3. Java-Applet mit Grafik 9 Applets 4. Java-Applet
MehrProzesse. Prozesse sind Programme. Prozesse können aus Unterprozessen bestehen. Prozesshierarchie Unterprozesse Threads
Threads Prozesse, Parallelität, Nebenläufigkeit, Threads, Erzeugung, Ausführung, Kommunikation, Interferenz, Kritischer Bereich, Deadlock, Synchronisation. Prozesse Prozesse sind Programme mehrere Prozesse
MehrZeichnen und animieren
Zeichnen und animieren Grundlage bildet wieder die Klasse Graphics Ein Objekt der Klasse Graphics wird immer der paint Methode übergeben public void paint (Graphics g) Auch außerhalb von paint kann Graphics
MehrThreading. Arthur Zaczek. Aug 2015
Arthur Zaczek Aug 2015 1 Threading 1.1 Motivation Threading erlaubt die gleichzeitige Ausführung von mehreren Programmteilen. mehrere gleichzeitige Anfragen: Webserver, Datenbank (zu) lange laufende Berechnungen:
MehrDezentrale Kontrolle: Aktive Objekte. Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread
Dezentrale Kontrolle: Aktive Objekte Aktive Objekte Die Klasse AnimatorThread Aktivierung Objekte beobachten Die Java-Klasse Thread Passive Objekte Bieten Dienste auf Abruf an: - eine Zahl von der Konsole
MehrAusnahmebehandlung in Java
Ausnahmebehandlung in Java class A { void foo() throws Help, SyntaxError {... class B extends A { void foo() throws Help { if (helpneeded()) throw new Help();... try {... catch (Help e) {... catch (Exception
MehrNebenläufigkeit mit Java
Nebenläufigkeit mit Java Einheit 03: Synchronisation Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda Synchronisation von Threads Locks Java Monitor-Konzept Lock Freigabe Zusammenspiel
MehrKapitel 9. Programmierkurs. Attribute von Klassen, Methoden und Variablen. 9.1 Attribute von Klassen, Methoden und Variablen
Kapitel 9 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Objektorientierte Programmierung Attribute von Klassen, Methoden und Variablen Interfaces WS 07/08 1/ 18 2/ 18
MehrFragen zur OOP in Java
- 1 - Inhalt Was bedeutet OOP?... 2 Was versteht man unter einer Klasse?... 2 Wie nennt man die Mitglieder einer Klasse?... 2 Wie erzeugt man Objekte?... 2 Wie greife ich auf Member einer Klasse zu?...
MehrJavakurs FSS Lehrstuhl Stuckenschmidt. Tag 3 - Objektorientierung
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 3 - Objektorientierung Warum Objektorientierung Daten und Funktionen möglichst eng koppeln und nach außen kapseln Komplexität der Software besser modellieren
MehrNebenläufigkeit in Java
Nebenläufigkeit in Java Prof. Dr. Margarita Esponda Prof. Dr. Margarita Esponda 1 Gliederung der Vorlesung - Konzepte der Nebenläufigkeit - Threads in Java - Synchronisationsprobleme - Klassische Lösungen
MehrJava I Vorlesung Nebenläufigkeit
Java I Vorlesung 10 Nebenläufigkeit 28.6.2004 Threads Synchronisation Deadlocks Thread-Kommunikation Innere Klassen Anonyme Klassen Nebenläufigkeit http://java.sun.com/docs/books/tutorial/essential/threads/
MehrUniversität Potsdam Institut für Informatik Sommersemester Programmierung. Lehrblatt Woche 11
Universität Potsdam Institut für Informatik Sommersemester 2014 Programmierung Lehrblatt Woche 11 1 Applets In den letzten Wochen haben Sie die graphische Programmierung kennengelernt. Um Java-Programme
MehrBeispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung
Beispiele für Ausdrücke Der imperative Kern Deklarationen mit Initialisierung Variablendeklarationen int i = 10; int j = 15; Beispiele für Ausdrücke i+j i++ i & j i j [] [static]
MehrEinstieg in die Informatik mit Java
1 / 35 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 35 1 Grundlagen 2 Verdeckte Variablen 3 Verdeckte Methoden 4 Konstruktoren
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrSoll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. NumberFormatException
Soll die Programm-Ausführung nicht beendet werden, muss der Fehler abgefangen werden. Beispiel: NumberFormatException public class Adding extends MiniJava { public static void main(string[] args) { int
MehrVersuchsziele. Grundlagen. Überblick: FB Automatisierung und Informatik Betriebssysteme Thema: Bounded-Buffer-Problem. 3.
Hochschule Harz 3. Labor Threads FB Automatisierung und Informatik Betriebssysteme Thema: Bounded-Buffer-Problem Versuchsziele Vertiefung im Verständnis der Thread- und Semaphor-Programmierung. Grundlagen
MehrKlausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.
Aufgabe 1 a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Drei0 ::= 0 3 6 9 Drei1 ::= 1 4 7 Drei2 ::= 2 5 8 Drei ::= Drei0 Drei0 Drei1 Drei2 Drei2 Drei1 b) Gegeben sei
MehrVererbung. Gerd Bohlender. Institut für Angewandte und Numerische Mathematik. Vorlesung: Einstieg in die Informatik mit Java 23.5.
Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 23.5.07 G. Bohlender (IANM UNI Karlsruhe) Vererbung 23.5.07 1 / 22 Übersicht 1
MehrVererbung, Polymorphie
Vererbung, Polymorphie Gerd Bohlender Institut für Angewandte und Numerische Mathematik Vorlesung: Einstieg in die Informatik mit Java 21.1.08 G. Bohlender (IANM UNI Karlsruhe) Vererbung, Polymorphie 21.1.08
MehrAusgewählte Implementierungsprobleme
Ausgewählte Implementierungsprobleme Rebecca Tiarks 18. Dezember 2008 1 / 30 Inhaltsverzeichnis 1 2 3 Persistenzproblem & CSV Binärformat 2 / 30 Themenübersicht 1 18. Dez: + 2 8. Jan. Swing 3 15. Jan TCP,
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java 3.1 Klassendeklarationen Fragen an die Klassendeklaration: Wie heißt die Klasse? Wer darf auf die Klasse und ihre Attribute/Methoden zugreifen? Ist die Klasse eine
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 4
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing.Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP JAVA 4 IV. Threads, Audiodateien, Bilder, Datumsfunktion, Aufruf
MehrFAKULTÄT FÜR INFORMATIK
TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 2006/2007 Praktikum Grundlagen der Programmierung Lösungsvorschläge zu Blatt 11 F. Forster,
MehrNebenläufige Programmierung I
Nebenläufige Programmierung I Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 07/03 Ziele 2 Grundlegende Begriffe der nebenläufigen Programmierung verstehen lernen
MehrEINFÜHRUNG IN DIE PROGRAMMIERUNG
EINFÜHRUNG IN DIE PROGRAMMIERUNG FORTGESCHRITTENE KONZEPTE Tobias Witt 26.03.2014 tobias.witt@hhu.de 25.12.01.30 Bürozeiten: 09 Uhr - 12 Uhr FEHLERBEHANDLUNG KLASSISCHER ANSATZ Fehlercode als Rückgabewert
MehrNebenläufigkeit in Java. Prof. Dr. Margarita Esponda
Nebenläufigkeit in Java Prof. Dr. Margarita Esponda Gliederung der Vorlesung - Konzepte der Nebenläufigkeit -Threads in Java - Synchronisationsprobleme - Klassische Lösungen -Semaphoren - Monitore - Lebenszyklus
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute
MehrVorlesung Informatik II
Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 17. JAVA Kommunikation von Threads 1 Motivation
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrVariablen manipulieren per JDI
Variablen manipulieren per JDI Zusammenfassung Jede moderne Java IDE verfügt über eine mächtige und dennoch meist einfach zu bedienende Benutzeroberfläche die das finden von Fehlern in lokalen oder entfernt
MehrEinführung in die Programmierung Blockkurs Java
Michael Bader 8. 12. April 2002 Freitag Inhaltsübersicht Exceptions und Errors Ausnahmebehandlung: try/catch/finally Threads Zugriffskontrolle bei gemeinsamen Variablen: synchronized, wait(), notify()
MehrThreads In dieser Übung beschäftigen wir uns mit der Realisierung von Threads in Java.
Threads In dieser Übung beschäftigen wir uns mit der Realisierung von Threads in Java. Aufgabe 1: Erzeugen und Starten von Threads a) Sei BankKunde eine von einer Klasse Kunde abgeleitete Klasse. Erweitern
MehrKapitel 13. Abstrakte Methoden und Interfaces. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz
Kapitel 13 Abstrakte Methoden und Interfaces 13. Abstrakte Klassen und Interfaces 1. Abstrakte Klassen 2. Interfaces und Mehrfachvererbung Folie 12.2 Abstrakte Methoden und Klassen Manchmal macht es überhaupt
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrEinstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Mehr1 Klassen anlegen und Objekte erzeugen
Werkzeugkiste Java 1 1 Klassen anlegen und Objekte erzeugen Klassengrundgerüst 1 /** 2 * Write a description of class Testklasse here. 3 * 4 * @author ( your name ) 5 * @version (a version number or a
Mehr16. Parallelität: Threads
Schwerpunkte 16. Parallelität: Threads Java-Beispiele: ThreadBasicTest.java ThreadSleep.java ThreadJoin.java SpotTest.java Leichtgewichtige und schwergewichtige Prozesse Threads: nutzerprogrammierte Parallelität
Mehr3. Klassen Statische Komponenten einer Klasse. Klassenvariablen
Klassenvariablen Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit aller Studentenobjekte.
Mehr3 Objektorientierte Konzepte in Java
3 Objektorientierte Konzepte in Java Bisherige Beobachtungen zu Objekten: werden in Klassen zusammengefasst besitzen Eigenschaften und Verhalten verbergen private Informationen werden geboren, leben und
MehrEinstieg in die Informatik mit Java
1 / 13 Einstieg in die Informatik mit Java Schnittstellen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 13 1 Einführung 2 Definition einer Schnittstelle 3 Implementierung
MehrKapitel 10. Programmierkurs. Grundlagen von Exceptions Behandlung von Exceptions
Kapitel 10 Programmierkurs Birgit Engels Anna Schulze Zentrum für Angewandte Informatik Köln Exceptions Behandlung von Exceptions Verschiedene Exceptions Mehrere catch-anweisungen Der finally-block WS
MehrInstitut für Informatik. Endterm Klausur zu Informatik I 20. Februar 2010
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung Prof. R. Westermann Endterm Klausur zu Informatik I 20. Februar 2010 ˆ Die Arbeitszeit beträgt 120
MehrParallele Programmierung in Java
PPJ-1 Parallele Programmierung in Java Prof. Dr. Uwe Kastens Sommersemester 2000 Vorlesung Parallele Programmierung in Java SS 2000 / Folie 01 PPJ-2 Ziele und Durchführung Die Studierenden sollen grundlegende
MehrProgrammierkurs Java
Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie
MehrJava Einführung Abstrakte Klassen und Interfaces
Java Einführung Abstrakte Klassen und Interfaces Interface Interface bieten in Java ist die Möglichkeit, einheitliche Schnittstelle für Klassen zu definieren, die später oder/und durch andere Programmierer
MehrKlausur Software-Entwicklung September 00
Aufgabe 1: Wahrheitstafeln ausgeben (ca. 8 Punkte) Matrikelnr : Ergänzen Sie in folgendem Programm, eine rekursive Funktion, die eine Boole'sche Wahrheitstafel für N Variablen ausgibt. Die Zahl N soll
MehrBeispiel für überladene Methode
Beispiel für überladene Methode class Gras extends Futter {... abstract class Tier { public abstract void friss (Futter x); class Rind extends Tier { public void friss (Gras x) {... public void friss (Futter
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces
Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt. Für eine abstrakte Klasse
Mehr14 Abstrakte Klassen, finale Klassen, Interfaces. Auswertung von Ausdrücken. Beispiel. Abstrakte Methoden und Klassen
Auswertung von Ausdrücken Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält, heißt ebenfalls abstrakt.
MehrAK-Automatisierungs und Kommunikationstechnik TI Technische Informatik. NWT Netzwerktechnik www.munz-udo.de
Stand FTE2 Anfang 4. Semester plus Projekt Multiuhren_Thread Ich gehe im Hinblick auf Klassenarbeiten und der Abschlussprüfung davon aus, dass Sie das Skript OOP JAVA2 durchgearbeitet haben. Wir haben
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 09: Vererbung Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil Einführung in die Vererbung Motivation Das Schlüsselwort extends Einführendes
MehrVerteilte Systeme CS5001
Verteilte Systeme CS5001 Th. Letschert TH Mittelhessen Gießen University of Applied Sciences Client-Server-Anwendungen: Vom passiven (shared state) Monitor zum aktiven Monitor Monitor (Hoare, Brinch-Hansen,
MehrImages. Kommen auf zweierlei Weise zur Anwendung. Darstellung von Pixelbildern(.jpg,.gif,.png) Bilden die Grundlage für Offscreendrawing
Graphics Klasse, die alle grundlegenden Methoden zum Zeichnen und Schreiben bereitstellt (draw -Methoden, Methoden zu Fonts und Colors) Bereitstellung eines Graphics-Objektes durch das AWT bei Aufruf der
Mehr3. Anweisungen und Kontrollstrukturen
3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen
MehrThreads Einführung. Multitasking/Multiprozessing. Multiprozessing. Einführung. Prozess
s Einführung Einführung in Prozesse und s Single- und Multithreading in Java Java s: Erzeugung, Methoden und Zustände sicherheit Einführung 2 von 45 Einführung Multitasking/Multiprozessing Multiprozessing
MehrObjektorientierte Programmierung Studiengang Medieninformatik
Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 2 22.03.2017 Was bisher geschah... Klassen und Objekte Attribute und Methoden Klasse Bruch
MehrDurch die Teil-von-Beziehung soll ausgedrückt werden, dass ein Objekt A als (physikalischer) Teil eines Objekts B angesehen wird. Insbesondere kann ei
Lösungsvorschläge zur Klausur zum Kurs 1618 Sommersemester 2001 am 22.9.2001 Aufgabe 1 a) Benutzungsbeziehung: class Kennzeichen class Fahrzeug boolean gueltigeskennzeichen (Kennzeichen kz) Objekte der
MehrJava Real-Time Specification
Ausgewählte Kapitel eingebetteter Systeme Java Real-Time Specification Tobias Distler 05.07.2006 Java und Echtzeit? Problem Nichtdeterministisches Verhalten der Garbage Collection Weitere Nachteile Scheduling
MehrNebenläufige Programmierung I
Nebenläufige Programmierung I Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS06 2 Ziele Grundlegende Begriffe der nebenläufigen Programmierung verstehen lernen Nebenläufige Programme
MehrProbeklausur Informatik 2 Sommersemester 2013
Probeklausur Informatik 2 Sommersemester 2013 1 Probeklausur Informatik 2 Sommersemester 2013 Name: Matrikelnummer: Hilfsmittel: Es sind alle schriftlichen Unterlagen, aber keine elektronischen Hilfsmittel
MehrJava Kurzreferenz Für Fortgeschrittene
Java Kurzreferenz Für Fortgeschrittene 1. Initialisierung von Applets: Die Methode init Wenn ein Applet gestartet wird, werden immer zwei Methoden aufgerufen. Diese heissen init und start. Um gewisse Berechnungen
MehrGrundzüge der Programmierung. Wiederverwendung VERERBUNG
Grundzüge der Programmierung Wiederverwendung VERERBUNG Inhalt dieser Einheit Syntax: Vererbung in Java Superklassen - Subklassen Konstruktorenaufruf in Subklassen super, abstract und final 2 Code-Reuse
MehrKapitel 9: Klassen und höhere Datentypen. Klassen und höhere. Objekte, Felder, Methoden. Küchlin/Weber: Einführung in die Informatik
Klassen und höhere Datentypen Objekte, Felder, Methoden Küchlin/Weber: Einführung in die Informatik Klassen Klasse (class) stellt einen (i.a. benutzerdefinierten) Verbund-Datentyp dar Objekte sind Instanzen
MehrFelder - Arrays. Typ feldname[] = new Typ[<ganze Zahl >]; Beispiel: double vektor[] = new double[5]; auch eine Initialisierung ist möglich.
Felder Felder - Arrays Variable gleichen Types können in Feldern (array) zusammengefasst werden. Typ[] feldname; oder Typ feldname[]; dabei kann unter Benutzung des new-operators gleich die Dimension zugewiesen
MehrÜberblick. Verteilte Systeme - Übung. Was ist ein Thread? Threads in Java. Multithreading in Java Threads Synchronisation Koordinierung
Überblick Verteilte Systeme - Übung Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de Sommersemester 2009
MehrKlassenmethoden. Klassenvariablen. Für das Auslesen des Studentenzählers definieren wir eine öffentliche Klassenmethode:
Klassenvariablen Klassenmethoden Wir wollen die Zahl der instantiierten Studentenobjekte zählen. Dies ist jedoch keine Eigenschaft eines einzelnen Objektes. Vielmehr gehört die Eigenschaft zu der Gesamtheit
MehrProgrammieren in Java -Eingangstest-
Programmieren in Java -Eingangstest- Nummer: 1. Studiengang: Informatik B.Sc. Informatik M.Sc. ESE B.Sc. ESE M.Sc. Sonstiges: Fachsemester: Bitte Fragen, die Sie nicht beantworten können unbedingt mit
MehrAppletprogrammierung
Appletprogrammierung 362 Übersicht zum Vorlesungsinhalt zeitliche Abfolge und Inhalte können variieren Appletprogrammierung HTML Methoden eines Applets AppletViewer Applikation zu Applet Flackernde Applets
MehrInstitut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September
Mehr