Java Threads. von Gerhart Mende und Awad Fuad. Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 1
|
|
- Maike Grosser
- vor 6 Jahren
- Abrufe
Transkript
1 Java Threads von Gerhart Mende und Awad Fuad Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 1
2 Einleitung Erzeugung und Start von Threads Synchronisation von Java Threads Signalmechanismus in Java Erweiterte Java-Synchronisationsmuster Thread Scheduling in Java Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 2
3 Einleitung Wozu sind Threads gut Um die Reaktionsfähigkeit einer Anwendung während einer langen laufenden Aufgabe zu verwalten Zur Aufhebung von einzeln abgrenzbaren Aufgaben zu ermöglichen. Einige Probleme sind untrennbar parallel Um den Status einer Ressource (z. B. DB) zu überwachen Einige APIs und Systeme verlangen bzw. fordern es (z. B. Swing) Um die Vorteile von mehreren Prozessoren zu nutzen. Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 3
4 Einleitung Anwendung Thread Wenn wir eine Applikation ausführen: Die JVM erzeugt ein Thread Objekt, deren Aufgabe durch die main () Methode definiert wird Die JVM startet den Thread Der Thread führt die Anweisungen des Programms nacheinander aus Nach dem Ausführen aller Anweisungen wird die Methode beendet und der Thread stirbt Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 4
5 Einleitung Mehrere Threads in einer Anwendung Jeder Thread verfügt über ein eigenes Laufzeit Stack Wenn zwei Threads die gleiche Methode ausführen, wird jeder Thread seine eigene Kopie der lokalen Variablen der Methode haben. Allerdings sehen alle Threads den gleichen dynamischen Speicher Zwei verschiedene Threads können auf das gleiche Objekt und die gleiche statische Felder gleichzeitig ( concurrently ) arbeiten Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 5
6 Einleitung Nebenläufigkeit vs. Parallelität Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 6
7 Einleitung Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 7
8 Erzeugung und Starten von Threads Thread Klassen können in Java auf zwei verschiedene Arten definiert werden: als Unterklasse der durch Implementierung Thread Klasse der Runnable Schnittstelle In beiden Fällen muss die Methode run() implementiert werden Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 8
9 Implementation von Threads Variante 1 Threads über die Schnittstelle Runnable implementieren: Z.B. zwei Threads, wobei einer zwanzigmal das aktuelle Datum und die Uhrzeit ausgibt und der andere einfach eine Zahl. Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 9
10 Implementation von Threads Variante 1 Direkter Aufruf von run() Sequenzielle Ausführung des Codes Parallele Ausführung: 1.) Erzeugung eines Thread Objekts 2.) Aufruf von start() Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 10
11 Implementation von Threads Variante 2 Erweiterung der Klasse Thread : Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 11
12 Implementation von Threads Variante 2 Einige Konstruktoren der Klasse java.lang.thread Thread ( ); // erzeugt ein leeres Thread Objekt mit automatisch // festgelegtem Namen Thread N Thread ( String name ); // erzeugt ein leeres Thread Objekt mit Namen // name Thread ( Runnable target ); // erzeugt zu Runnable Objektziel ein // Thread Objekt Thread ( Runnable target, String name ); // erzeugt zu Runnable Objektziel // ein Thread Objekt mit Namen // name Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 12
13 Implementation von Threads Variante 2 Einige Methoden der Klasse java.lang.thread void run() Methode Innerhalb der run() Methode befinden sich die potenziell parallel ausführbaren Aktivitäten eines Threads. void start() Methode Startet ein Thread und zwar: es wird Speicher für den Thread bereit gestellt und die run Methode wird aufgerufen Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 13
14 Implementation von Threads Variante 2 Einige Methoden der Klasse java.lang.thread void join() Methode Um auf die Beendigung eines oder mehrerer Threads zu warten, benutzt man die join() Methode. void join( long timeout ) der aufrufende Thread wird blockiert, die Blockierung wird aufgehoben, sobald der angegebene Thread beendet ist oder wenn die angegebene Zeit timeout abgelaufen ist Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 14
15 Implementation von Threads Variante 2 Weitere Methoden der Klasse java.lang.thread void sleep( int millis ) Methode Ein Thread kann mit der sleep() Methode für eine vorbestimmte Zeit in den Zustand "not runnable" versetzt werden. void yield() Methode zwingt den aktuell ausgeführten Thread zu pausieren und erlaubt die Weiterführung anderer Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 15
16 Threads beenden Ein Thread ist beendet, wenn eine der nachfolgenden Bedingungen zutrifft: Die run() Methode wurde ohne Fehler beendet. In der run() Methode tritt eine Exception auf, die zum Beenden der Methode führt. Der Thread wurde von außen abgebrochen. Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 16
17 Erzeugung und Start von Threads Verglich der beiden Implementationen Ableiten von Thread Vorteil: Programmcode in run() kann die Methoden der Klasse Thread nutzen Nachteil: Da es in Java keine Mehrfachvererbung gibt, kann die Klasse nur Thread erweitern Implementieren der Runnable Schnittstelle Vorteil: Die Klasse kann von einer anderen, problemspezifischen Klasse erben Nachteil: Kann sich nur mit Umwegen selbst starten; allgemein: Thread-Methoden können nur über Umwege genutzt werden Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 17
18 Synchronisation von Java Threads Synchronisation von Threads ist erforderlich, um Threads Koordination zu steuern. Vor allem, um gleichzeitige Operationen an Daten zu verhindern Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 18
19 Synchronisation von Java Threads Wenn mehrere Threads auf gemeinsame Daten gleichzeitig schreiben wollen, entsteht dann die Gefahr von inkonsistenten Daten. Thread 1 Thread 2 Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 19
20 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 20
21 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 21
22 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 22
23 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 23
24 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 24
25 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 25
26 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 26
27 Synchronisation von Java Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 27
28 Synchronisation von Java Threads Lösung: Wechselseitiger Ausschluss muss gewährleistet werden Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 28
29 Synchronisation von Java Threads Java stellt zur Lösung des wechselseitigen Ausschluss von Threads beim Zugriff auf gemeinsame Daten synchronized Blöcke und Methoden zur Verfügung. Deklaration einer Methode bzw. eines Blocks als synchronized stellt sicher, dass keine gleichzeitige Ausführung durch zwei Threads erfolgt. Die Synchronisation wird In der JVM dadurch realisiert, dass jedem Java Objekt implizit eine Mutexvariable zugeordnet wird. Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 29
30 Synchronisation von Java Threads Wenn eine synchronisierte Methode aufgerufen wird, versucht der aufrufende Thread die Sperre für das Objekt zu erhalten Wenn der Thread die Sperre nicht erhalten kann, geht der Thread schlafen, bis die Sperre wieder zur Verfügung steht Sobald die Sperre erhalten wird, kann kein anderer Thread die Sperre erhalten, bis sie freigegeben wird. D.h. bis die synchronisierte Methode beendet wird Wenn ein Thread innerhalb eines synchronisierten Methode ist, weiß er, Thread aufgerufen werden kann dass keine andere synchronisierte Methode von jedem anderen Beim Verlassen der synchronisierten Methode wird die Sperre wieder freigegeben. Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 30
31 Überblick Signalmechanismus in Java ( wait() / notify() ) erweiterte Java Synchronisationsmuster ( Semaphore, Barriers, Bedingungsvariablen ) Thread Scheduling in Java Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 31
32 Signalmechanismus in Java wait/signal bzw. wait() / notify() Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 32
33 Signalmechanismus in Java wait() / notify() der Klasse Object benötigt Monitor ermöglicht das Blockieren und Aufwecken von Threads z.b. um auf bestimmte Bedingung zu warten, die ein anderer Thread herbeiführt verhindert busy waiting Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 33
34 Signalmechanismus in Java wait() blockiert den aufrufenden Thread, bis der von notify() aufgeweckt wird: synchronized (lockobject) { while (!Bedingung) { lockobject.wait(); } Aktion; } notifyall() alle aufwecken Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 34
35 Signalmechanismus in Java wait() gibt Mutexvariable frei wait / notify arbeitet mit Warteliste für jedes Objekt eine Liste mit durch wait() blockierten Threads Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 35
36 Signalmechanismus in Java wait / notify sind nicht statisch: Aufruf in nicht statischen Methoden oder mit zusätzlichen Objekt o: o.wait() bzw. o.notify() o ist beliebiges Objekt oder Class objekt der enthaltenden Klasse: Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 36
37 Signalmechanismus in Java Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 37
38 Signalmechanismus in Java wait(int ms, int ns) blockiert bis zum Ablauf der angegebenen Zeit, wenn vorher nicht durch notify() geweckt Zeitangabe ist Mindestzeit Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 38
39 Signalmechanismus in Java ein blockierter Thread kann auch durch Unterbrechung geweckt werden void interrupt(); //Klasse Thread bei nicht blockiertem Thread wird interruptflag gesetzt dieser löst dann bei Blockieren sofort Ausnahme aus Überprüfung durch: static boolean interrupted(); //eigener Status boolean isinterrupted(); //anderer Thread Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 39
40 Signalmechanismus in Java Warteliste: BLOCKED (wartet auf Lock) M O N I T O R Warteliste: WAITING (wartet auf notify) Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 40 notify wait
41 Signalmechanismus in Java NEW Neuer Thread, noch nicht gestartet RUNNABLE Läuft in der JVM BLOCKED Wartet auf einen Monitor Lock, wenn er etwa einen synchronized Block betreten möchte WAITING Wartet etwa auf ein nofity() TIMED_WAITING Wartet etwa in einem sleep() TERMINATED Ausführung beendet Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 41
42 erweiterte Java Synchronisationsmuster (Semaphore, Barriers, Bedingungsvariablen) Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 42
43 Semaphore abstrakter Datentyp mit 2 Operationen: P(s), V(s) P(s) = await (s > 0); s:= s 1 V(s) = s:= s + 1 Semaphore s wird mit Wert k initialisiert k=1 : binäre Semaphore Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 43
44 Semaphore wechselseitiger Aussschluss mit Semaphoren: variable mutex :=Semaphore(1); process Process() do Remainder of code ; P(mutex); Critical section ; V(mutex); od; end Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 44
45 Semaphore Implementierung mit wait/signal: public class Semaphore{ private int k; public Semaphore(int k) { this.k=k; } public synchronized void p() { while (k==0) wait(); k; } } public synchronized void v() { ++k; notify(); } Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 45
46 Semaphore Javaklasse: java.util.concurrent.semaphore Konstruktoren: Semaphore(int permits) Semaphore(int permits, boolean fair) P() = aquire(); acquireuninterruptibly V() = release(); Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 46
47 Semaphore void acquire(int permits) void acquireuninterruptibly(int permits) int availablepermits() int drainpermits() Collection<Thread> getqueuedthreads() int getqueuelength() boolean hasqueuedthreads() boolean isfair() void reducepermits(int reduction) void release(int permits) String tostring() boolean tryacquire() boolean tryacquire(int permits) boolean tryacquire(int permits, long timeout, TimeUnit unit) boolean tryacquire(long timeout, TimeUnit unit) Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 47
48 Semaphore Achtung Deadlock: Thread 1 Thread 2 s1.aquire(); s2.aquire(); s2.aquire(); s1.aquire(); s2.aquire(); s1.aquire(); s1.aquire(); s2.aquire(); Ausführung: T1: s1.aquire(); T2: s2.aquire(); T1: s2.aquire(); T2: s1.aquire(); DEADLOCK!!! Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 48
49 Beispiel Semaphore Problem: - n Honigbienen - 1 hungriger Bär - 1 Topf Honig (anfangs leer) Topf fasst maximal H Portionen Honig. Bienen füllen Topf. Bär schläft bis Topf voll ist, und isst dann den Topf leer und schläft wieder ein. Die Biene die den Topf voll macht weckt den Bären Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 49
50 Beispiel Semaphore Semaphor sleep = new Semaphore(0); Semaphore wait = new Semaphore(0); Semaphore check = new Semaphore(1); int topf = 0; final int H = _; public void bear(){ while(true){ sleep.aquire(); e a t topf = 0; wait.release(); } } Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 50
51 Beispiel Semaphore public void bees(){ check.aquire(); ++topf; if (topf==h){ sleep.release(); wait.aquire(); } check.release() } Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 51
52 Barrier Synchronisation Barrier definiert fixen Punkt im Code, an dem ein Thread auf andere Threads wartet alle teilnehmenden Threads warten dort solange, bis alle anderen Thread auch dort angekommen sind Barrier Objekt erforderlich Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 52
53 Barrier Synchronisation Anzahl Threads Konstruktor alle aufwecken warten Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 53
54 Barrier Synchronisation Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 54
55 Barrier Synchronisation Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 55
56 Barrier Synchronisation Implementierung mit Semaphoren: public class Barrier{ int t2w4, k; Semaphore s; public barrier(int n) { this.t2w4=n; this.k=n; this.s=new Semaphore(0); } public synchronized wait4rest(){ int n = k; if (k>0) s.acquireuninterruptibly(); else s.release(t2w4); return n; } } Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 56
57 Barrier Synchronisation seit Java 5: Klasse: CyclicBarrier Paket: java.util.concurrent Konstruktoren: CyclicBarrier(int parties) CyclicBarrier(int parties, Runnable barrieraction) Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 57
58 Barrier Synchronisation Methoden: int await() int await(long timeout, TimeUnit unit) int getnumberwaiting() int getparties() boolean isbroken() void reset() Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 58
59 Bedingungsvariable Problem: wait/notify immer mit bezüglich eines Objektes Bindung an die implizite Mutexvariable des zugehörigen Objektes findet statt einfache Benutzung weniger flexibel Nachbildung von Bedinungsvariablen wie in pthreads_cond... möglich Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 59
60 Bedingungsvariable Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 60
61 Bedingungsvariable Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 61
62 Bedingungsvariable Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 62
63 Bedingungsvariable Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 63
64 Thread Scheduling in Java Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 64
65 Thread Scheduling in Java Thread Scheduling von der JVM (java virtual machine) Zuteilung von Threads an Prozessoren kann beeinflusst werden Vergabe von Prioritäten Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 65
66 Thread Scheduling in Java public static final int MIN_PRIORITY // 1 public static final int MAX_PRIORITY // 10 public static final int NORM_PRIORITY // 5 public int getpriority() public void setpriority(int prio) Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 66
67 Thread Scheduling in Java Problem: Prioritätsinversion (priority inversion) Thread hoher Priorität wird blockiert und wartet auf Thread niediger Priorität Thread mittlerer Priorität hindert Thread hoher Priorität Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 67
68 Thread Scheduling in Java Lösung: Prioritätsvererbung (priority inheritance) wenn Thread hoher Priorität auf anderen Thread wartet, wird dessen Priorität angehoben (von vielen JVM's genutzt) Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 68
69 Ende Quellen: Parallele Programmierung Thomas Rauber, Gudula Rünger Java 7 Mehr als eine Insel Christian Ullenboom Java API ( ) ALP IV Skript: Concurrent Programming Marcel Kyas Vorlesungsfolien Nebenläufigkeit in Java Margarita Esponda...FRAGEN??? Fuad Awad & Gerhart Mende ProSeminar parallele Programmierung 69
Dr. 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
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
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
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
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
MehrÜbung zu Grundlagen der Betriebssysteme. 10. Übung 18.12.2012
Übung zu Grundlagen der Betriebssysteme 10. Übung 18.12.2012 Aufgabe 1 a) Was versteht man unter einem kritischen Abschnitt oder kritischen Gebiet (critical area)? b) Welche Aufgabe hat ein Semaphor? c)
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
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
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:
MehrZur Erinnerung: Threads. Threadverwaltung. Threads: Prioritäten. Beispiel Flugbuchungsprogramm. Nichtdeterminismus
Zur Erinnerung: Threads Programmierung (fortgeschrittene Konzepte) Threads, Monitore, Semaphore und speisende en Wolf-Ulrich Raffel (uli@wuraffel.de) Möglichkeiten, Threads zu definieren Bildung einer
Mehr2.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.
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
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
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
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,
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
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
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
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,
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,
MehrVerteilte Systeme. 2. Die Client-Server-Beziehung und daraus resultierende Techniken. 2.2 Nebenläufigkeitstechniken in Java
VS22 Slide 1 Verteilte Systeme 2. Die Client-Server-Beziehung und daraus resultierende Techniken 2.2 Nebenläufigkeitstechniken in Java Sebastian Iwanowski FH Wedel VS22 Slide 2 Was ist Nebenläufigkeit?
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()
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
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
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
MehrÜbung Betriebssysteme 11
Übung Betriebssysteme 11 Christian Motika Christian-Albrechts-Universität zu Kiel Institut für Informatik AG Echtzeitsysteme / Eingebettete Systeme Kiel, Germany 29-JAN-2013 CAU - WS 2012/13 Übung Betriebssysteme
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 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,
Mehr3.2 Prozessumschaltung
3.2 Prozessumschaltung (dispatching) deaktiviert einen Prozess und aktiviert einen anderen. Wann? aktiver Prozess wird vom Prozessor verdrängt zugunsten eines bereiten Prozesses aktiver Prozess blockiert,
MehrKapitel 5. Monitore und Synchronisationsbedingungen
Seite Kapitel 5 Monitore und Synchronisationsbedingungen Prof. Dr. Rolf Hennicker 5.6.24 5. Synchronisationsbedingungen Seite 2 Bisherige Verwendung von Monitoren: Verkapselung von Daten, Zugriffoperationen
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
MehrRepetitorium Informatik (Java)
Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen
MehrVererbung & Schnittstellen in C#
Vererbung & Schnittstellen in C# Inhaltsübersicht - Vorüberlegung - Vererbung - Schnittstellenklassen - Zusammenfassung 1 Vorüberlegung Wozu benötigt man Vererbung überhaubt? 1.Um Zeit zu sparen! Verwendung
MehrMonitore. Klicken bearbeiten
Sascha Kretzschmann Institut für Informatik Monitore Formatvorlage und deren Umsetzung des Untertitelmasters durch Klicken bearbeiten Inhalt 1. Monitore und Concurrent Pascal 1.1 Warum Monitore? 1.2 Monitordefinition
Mehr7. Schnittstellen Grundlagen zu Schnittstellen. 7. Schnittstellen
7. Schnittstellen Grundlagen zu Schnittstellen 7. Schnittstellen Eine Schnittstelle (Interface) ist eine Spezifikation eines Typs in Form eines Typnamens und einer Menge von Methoden, die keine Implementierungen
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,
MehrPThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes
PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory
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,
MehrUniversität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren
Universität Stuttgart Prof. Dr.-Ing. Dr. h. c. P. Göhner Aufgabe 5.1: Übung 5: Semaphoren Semaphor-Operationen In Bild 5.1.1 ist die Anordnung von Semaphor-Operationen am Anfang und am e der asks A,B,C
MehrMulti-Threading. Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de
Multi-Threading Ralf Abramowitsch Vector Informatik GmbH abramowitsch@lehre.dhbw-stuttgart.de Einführung in Threads Threads synchronisieren ThreadPools Thread = unabhängiger Ausführungspfad, der gleichzeitig
Mehr6. Tutorium zu Softwaretechnik I
6. Tutorium zu Softwaretechnik I Parallelität und Testen Michael Hoff 01.07.2014 INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION KIT Universität des Landes Baden-Württemberg und nationales Forschungszentrum
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
MehrInstitut für Programmierung und Reaktive Systeme 19. August Programmier-Labor. 1. Übungsblatt
echnische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 19. August 2014 Aufgabe 1: Programmier-Labor 1. Übungsblatt a) Welche primitiven Datentypen kennt
MehrVS4 Slide 1. Verteilte Systeme. Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel
VS4 Slide 1 Verteilte Systeme Vorlesung 4 vom 29.04.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte
MehrKlausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)
Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum
MehrTheorie zu Übung 8 Implementierung in Java
Universität Stuttgart Institut für Automatisierungstechnik und Softwaresysteme Prof. Dr.-Ing. M. Weyrich Theorie zu Übung 8 Implementierung in Java Klasse in Java Die Klasse wird durch das class-konzept
MehrDas Monitorkonzept Brinch-Hansen
Das Monitorkonzept (nach Hoare/Brinch Brinch-Hansen 1974) Nur ein Prozess bzw. Thread kann zu einem bestimmten Zeitpunkt im Monitor aktiv sein => gegenseitiger Ausschluss, mutual exclusion. Geschützte
MehrEinstieg in die Informatik mit Java
1 / 34 Einstieg in die Informatik mit Java Klassen mit Instanzmethoden Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 34 1 Definition von Klassen 2 Methoden 3 Methoden
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
MehrMultithreading ab Java 5: Die neuen Concurrency APIs
Multithreading ab Java 5: Die neuen Concurrency APIs Java Concurrency Spezifiziert in JSR166 Ab Java 5 fester Bestandteil von Java Durch zusätzliche Library auch vor Java 5 vorhanden backport-util-concurrent
MehrObjektorientierte Programmierung
Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)
MehrÜberblick. Middleware - Übung. Threads in Java. Was ist ein Thread? Multithreading in Java Threads Synchronisation Koordinierung
Überblick Middleware - Übung Tobias Distler, Michael Gernoth, Rüdiger Kapitza Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de
MehrNebenläufige Programmierung in Java
Informatik IV 37-004 SS 2002 Thomas Gross Diese Slides kommen ohne Gewähr. 9-1 Thomas Gross 1997-2000 Nebenläufige Programmierung in Java Threads und deren Zustände Speichermodell Einfache Synchronisation
MehrProgrammieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik
Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen
MehrC# im Vergleich zu Java
C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung
MehrInfo B VL 8: Abstrakte Klassen & Interfaces
Info B VL 8: Abstrakte Klassen & Interfaces Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 8: Abstrakte
MehrBetriebssystembau (BSB)
Betriebssystembau (BSB) 6. Übung http://ess.cs.tu-.de/de/teaching/ws2013/bsb/ Olaf Spinczyk olaf.spinczyk@tu-.de http://ess.cs.tu-.de/~os AG Eingebettete System Informatik 12, TU Dortmund Agenda Vorstellung
MehrProgrammierkurs C++ Abstrakte Klassen und Methoden
Programmierkurs C++ Abstrakte Klassen und Methoden Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie Obst double
MehrSchwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
MehrUniversität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr.
Universität Augsburg, Institut für Informatik Sommersemester 2003 Prof. Dr. Bernhard Bauer 18. Oktober 2003 Stefan Fischer, Dr. Martin Müller Informatik II 2. Semesterklausur Prüfungsmodul Informatik II
MehrJava-Programmierung. Remote Method Invocation - RMI
Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig
MehrBetriebssysteme. Wintersemester 2015. Kapitel 2 Prozess und Threads. Patrick Kendzo ppkendzo@gmail.com
Betriebssysteme Wintersemester 2015 Kapitel 2 Prozess und Threads Patrick Kendzo ppkendzo@gmail.com Programm Inhalt Einleitung Prozesse und Threads Speicherverwaltung Eingabe und Ausgabe Dateisysteme Zusammenfassung
MehrJava Schulung (Java 2 Java Development Kit 5 / 6)
4. Threads und nebenläufige Programmierung 4.1 Prozesse und Threads Moderne Betriebssysteme geben Benutzer die Illusion, verschiedene Programm würden gleichzeitig ausgeführt (Multitasking) Tatsächlich
MehrKapitel 4. Monitore und wechselseitiger Ausschluss
Seite 1 Kapitel 4 Monitore und wechselseitiger Ausschluss Prof. Dr. Rolf Hennicker 28.05.2015 4.1 Interferenzen Seite 2 Parallel ablaufende Prozesse können sich gegenseitig (störend) beeinflussen. Beispiel
MehrEinstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Vererbung Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick: Vererbung 2 Grundidee Vererbung 3 Verdeckte Variablen
MehrInhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:
Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6
MehrVerhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...
PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:
MehrSoftwarelösungen: Versuch 4
Softwarelösungen: Versuch 4 Nichtstun in Schleife wird ersetzt durch zeitweilige Zurücknahme der Anforderung, um es anderen Prozessen zu erlauben, die Ressource zu belegen: /* Prozess 0 */ wiederhole flag[0]
MehrEinführung in die Programmierung
Skript zur Vorlesung: Einführung in die Programmierung WiSe 2009 / 2010 Skript 2009 Christian Böhm, Peer Kröger, Arthur Zimek Prof. Dr. Christian Böhm Annahita Oswald Bianca Wackersreuther Ludwig-Maximilians-Universität
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]
Mehr6 Speicherorganisation
Der Speicher des Programms ist in verschiedene Speicherbereiche untergliedert Speicherbereiche, die den eigentlichen Programmcode und den Code der Laufzeitbibliothek enthalten; einen Speicherbereich für
MehrGeschachtelte Klassen
Geschachtelte Klassen Christian Schamott 1 / 26 Übersicht Gemeinsamkeiten 4 Arten geschachtelte Klassen Elementklasse Lokale Klassen Anonyme Klassen Statisch geschachtelte Klassen Christian Schamott 2
MehrPräsentation Interfaces
Einführung in Java Präsentation Interfaces Nozar Delassaei Marvi Inhalt 1. Erinnerung Klasse Objekte Beispiel Klasse Abstrakte Klasse Beispiel Abstrakte Klasse Mehrfachvererbung-1 Mehrfachvererbung-2 2.
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Das Java-Speichermodell Prof. Dr. Walter F. Tichy Dr. Victor Pankratius Ali Jannesari Geschichte des Speichermodells Kapitel 17 der Java-Sprachdefinition
MehrUniversität Karlsruhe (TH)
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Cluster-Praktikum Sommersemester 2007 Transparent Replizierte Objekte in JavaParty Institut für Programmstrukturen und Datenorganisation
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.
MehrEine Klasse beschreibt Objekte mit gleichen Attributen und Methoden.
Grundwissen Informatik Objekt Attribut Methoden Als Objekte bezeichnet man alle Gegenstände, Dinge, Lebewesen, Begriffe oder Strukturen unserer Welt ( Autos, Räume, Bakterien, Lehrer, Schüler, Kunden,
MehrWelche Informatik-Kenntnisse bringen Sie mit?
Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrJava für Computerlinguisten
Java für Computerlinguisten 2. Objektorientierte Programmierung Christian Scheible Institut für Maschinelle Sprachverarbeitung 28. Juli 2009 Christian Scheible Java für Computerlinguisten 28. Juli 2009
MehrParallele und verteilte Anwendungen in Java
Rainer Oechsle Parallele und verteilte Anwendungen in Java ISBN-10: 3-446-40714-6 ISBN-13: 978-3-446-40714-5 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40714-5
MehrProgrammieren 2 Java Überblick
Programmieren 2 Java Überblick 1 Klassen und Objekte 2 Vererbung 4 Innere Klassen 5 Exceptions 6 Funktionsbibliothek 7 Datenstrukturen und Algorithmen 8 Ein-/Ausgabe 9 Graphische Benutzeroberflächen 10
MehrInhaltsverzeichnis. Rainer Oechsle. Parallele und verteilte Anwendungen in Java ISBN: Weitere Informationen oder Bestellungen unter
sverzeichnis Rainer Oechsle Parallele und verteilte Anwendungen in Java ISBN: 978-3-446-42459-3 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42459-3 sowie im Buchhandel.
MehrAlgorithmen und Programmierung IV: Nichtsequentielle Programmierung. Robert Tolksdorf. Freie Universität Berlin
Algorithmen und Programmierung IV: Nichtsequentielle Programmierung Robert Tolksdorf Freie Universität Berlin Überblick Überblick Sperrsynchronisation Sperrsynchronisation in Datenbanken Bedingungssynchronisation
MehrKapitel 4: Klassen und Unterklassen
Liste P: Programmieren mit Java WS 2001/2002 Prof. Dr. V. Turau FH Wiesbaden Kapitel 4: Klassen und Unterklassen Folie 54 : Unterklassen Die Bildung von Unterklassen und das Konzept der Vererbung sind
MehrSystem.out.println("TEXT");
Inhaltsübersicht - Erstes Beispiel - Datentypen - Ausdrücke und Operatoren - Schleifen / Bedinungen - Struktogramme - Grundgerüst eines Programms in JAVA - Einlesen von Daten Erstes Beispiel public class
MehrProzeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen
Seite 8 A UFGABE 11 INTERP ROZEßKOMMUNIKATION Das folgende Petrinetz zeigt zwei verkoppelte Prozesse P1 und P2. Die Transitionen a und b beschreiben Aktionen von P1, die Transitionen c und d Aktionen von
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Wiederholung: Gerüstbeispiel. Vererbungshierarchie: Typ 0
9 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Wiederholung: Gerüstbeispiel Ein Duo, Quarto oder Sexto ist ein Gerüst. Die Klassen Duo, Quarto und Sexto sollen durch Vererbung
MehrBetriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)
Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen) 1 Prozesse Bei Betriebssystemen stoßen wir des öfteren auf den Begriff Prozess als wahrscheinlich am häufigsten verwendeter und am unklarsten
Mehr2.13 Vererbung. Rainer Feldmann Universität Paderborn Technische Informatik für Ingenieure (TIFI) WS 09/ Article
2.13 Vererbung Klassen modellieren Objekte der realen Welt. Diese sind oft hierarchisch gegliedert. Beispiel: Ein Verlag bietet Bücher und CDs an. Beide Medien sind Artikel des Verlages. Book author: String
MehrSequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )
Threads Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden ) Ein thread bearbeitet eine sequentielle Teilaufgabe innerhalb eines Prozesses Mehrere nebenläufige
MehrJava Solutions. Programmier- und Architekturlösungen für die Java-Plattform. Bearbeitet von Markus Kopp, Gerhard Wilhelms
Java Solutions Programmier- und Architekturlösungen für die Java-Plattform Bearbeitet von Markus Kopp, Gerhard Wilhelms 1. Auflage 2004. Buch. 400 S. Hardcover ISBN 978 3 446 22550 3 Format (B x L): 17,7
MehrNebenläufige Anwendungen in Java (J2SE, Rich Client, J2EE)
CNAM Wintersemester 2014 / 2015 Nebenläufige Anwendungen in Java (J2SE, Rich Client, J2EE) Im Rahmen von: Betriebssysteme und nebenläufige Anwendungen Agenda Nebenläufigkeit in Java Anwendungen Basisfunktionen
MehrObjektorientierung (OO)
Objektorientierung (OO) Objekte haben Zustände (oder Eigenschaften, Attribute) und Verhalten Zustände: Objektvariablen (in Java auch fields) Verhalten (oder Aktionen): Methoden (methods, Funktionen) members
MehrProseminar Nichtsequentielle Programmiersprachen WS 2011/2012 Monitore
Fachbereich Mathematik und Informatik Institut für Informatik Proseminar Nichtsequentielle Programmiersprachen WS 2011/2012 Monitore Sascha Kretzschmann 2. November 2011 Inhaltsverzeichnis 1 Einleitung
MehrEinstieg in die Informatik mit Java
Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere
MehrProf. Dr. Uwe Schmidt. 21.August Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (BInf 211, BTInf 211, BMInf 211, BWInf 211)
Prof. Dr. Uwe Schmidt 21.August 2007 Aufgaben zur Klausur Objektorientierte Programmierung im SS 2007 (BInf 211, BTInf 211, BMInf 211, BWInf 211) Zeit: 75 Minuten erlaubte Hilfsmittel: keine Bitte tragen
MehrJava Threads. Mutex, Race Condition, Deadlock, Starvation und Co.. Prof. Dr. Nikolaus Wulff
Java Threads Mutex, Race Condition, Deadlock, Starvation und Co.. Prof. Dr. Nikolaus Wulff Java Threads Threads sind leichtgewichtige Prozesse. Sie benötigen keine Betriebsystemressourcen wie ein echter
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
MehrNebenläufigkeit in Java
Nebenläufigkeit in Java Maurice Schoenmakers schoenma@informatik.tu muenchen.de Inhaltsverzeichnis 1 Einleitung... 2 2 Prozesse und Threads in Java... 2 2.1 Die Klasse Thread... 3 2.2 Der aktuelle Thread...
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
Mehr