Universität Karlsruhe (TH)
|
|
- Kerstin Arnold
- vor 6 Jahren
- Abrufe
Transkript
1 Nebenläufikeit
2 Nebenläufigkeit in C# Eine VM (beliebig, variabel) viele Aktivitäten (werden dynamisch erzeugt) n Prozessoren Kommunikation über gemeinsamen Speicher (nicht über Botschaften) Koordination notwendig: Richtige Verzahnung der Zugriffe durch Sperren der Programmabschnitte Monitorkonzept Warum Koordination? Beispiel: if (globalvar > 0) { globalvar --; Welches ist der kleinste Wert, den globalvar annehmen kann?
3 Monitorkonzept Faden 1 ( ): Monitor.Enter(x) Monitor.Enter Objekt x Faden 2 ( ): Monitor.Enter(x) Faden 3 ( ): Monitor.Enter(x) Faden 4 ( ): Monitor.Enter(x) Schlange der Ausführbereiten Der gegenwärtige Inhaber der Sperre Schlange der Wartenden Ausführungsfaden
4 Monitorkonzept Faden 1 (tut irgendwas) Faden 2, 3 & 4 (warten) Faden 1: Monitor.Exit(x) Faden 2 darf jetzt anfangen Faden 3 und 4 warten weiterhin Monitor.Enter Schlange der Ausführbereiten Objekt x Der gegenwärtige Inhaber der Sperre Monitor.Exit Schlange der Wartenden
5 Monitorkonzept Faden 2 (tut irgendwas) Faden 3 und 4 (warten) Faden 2: Monitor.Wait(x) Faden 3 darf jetzt anfangen Faden 4 wartet weiterhin Monitor.Enter Schlange der Ausführbereiten Objekt x Der gegenwärtige Inhaber der Sperre Monitor.Wait Monitor.Exit Schlange der Wartenden
6 Monitorkonzept Faden 3 (tut irgendwas) Monitor.Enter Objekt x Monitor.Exit Faden 2 und 4 (warten) Faden 3: Monitor.Wait(x) Faden 4 darf jetzt anfangen Schlange der Ausführbereiten Der gegenwärtige Inhaber der Sperre Monitor.Wait Schlange der Wartenden Faden 5 ( ): Monitor.Enter(x)
7 Monitorkonzept Faden 4 (tut irgendwas) Faden 2, 4 & 5 (warten) Faden 4 (!): Monitor.PulseAll(x) Faden 2 und 4 werden wieder ausführbar, müssen aber weiter warten Monitor.Enter Schlange der Ausführbereiten Objekt x Der gegenwärtige Inhaber der Sperre Monitor.Wait Monitor.Pulse Monitor.PulseAll betrifft nur den Kopf der Schlange Monitor.Exit Schlange der Wartenden betrifft alle Fäden
8 Monitorkonzept Faden 4 (tut irgendwas) Faden 2, 4 & 5 (warten) Faden 4: Monitor.Exit(x) Faden 5 (!) darf jetzt anfangen Faden 2 und 4 wartet weiterhin Monitor.Enter Schlange der Ausführbereiten Objekt x Der gegenwärtige Inhaber der Sperre Monitor.Wait Monitor.Pulse Monitor.PulseAll Monitor.Exit Schlange der Wartenden
9 Monitorkonzept Objekt x Monitor.Enter Monitor.Exit Daher: Bedingung noch mal prüfen! Schlange der Ausführbereiten Der gegenwärtige Inhaber der Sperre Monitor.Wait Monitor.Pulse Monitor.PulseAll Schlange der Wartenden
10 Regeln Der Aufruf Monitor.Enter(x) blockiert den Faden so lange, bis der Faden die Sperre erhält (im Zweifel auch ewig). Der Aufruf Monitor.TryEnter(x) kehrt sofort zurück; das Resultat des Aufrufes ist true, wenn der aktuelle Faden die Sperre erhalten hat, sonst false. Ein Faden, der die Sperre auf ein Objekt x hält, kann er beliebig häufig ( n) mal Monitor.Enter(x) aufrufen, er wird jedes mal sofort Erfolg haben Wenn der Faden die Sperre wieder freigeben möchte, muss er n mal Monitor.Exit(x) aufrufen Wenn der Faden Monitor.Wait(x) aufruft, wird implizit n mal Monitor.Exit(x) und später wieder n mal Monitor.Enter(x) aufgerufen
11 Probleme Ein Faden braucht Monitor.Enter(x)- und zugehörige Monitor.Exit(x)-Anweisungen keineswegs innerhalb des selben Ausdrucks oder auch nur der selben Methode aufzurufen sie dürfen wild im Code verstreut werden Was passiert, wenn irgendwo dazwischen eine unvorhergesehene Ausnahme auftritt?
12 Die lock-anweisung Eine lock-anweisung wie folgt lock (x) ist exakt äquivalent zu object obj = x; System.Threading.Monitor.Enter(obj); try { finally { System.Threading.Monitor.Exit(obj);
13 Die lock-anweisung Vorteile Der zu einem Enter gehörende Exit-Aufruf kann nicht vergessen werden Jeder Pfad durch den Code endet mit genau so vielen Exit- Aufrufen wie Enter-Aufrufen Beispiel: Schleifen mit break und continue und tief geschachtelten Bedingungen, an allen möglichen Enden return-anweisungen Auch in Ausnahmesituationen wird die Sperre wieder freigegeben Achtung: Verklemmung immer noch möglich Faden 1 Faden 2 lock(a) { lock(b) { lock(b) { lock(a) {
14 Die lock-anweisung für eine ganze Methode In C# gibt es keine synchronized-methoden wie in Java Aber: das Attribut System.Runtime.CompilerServices.MethodImplAttribute wie folgt parametrisiert [MethodImpl(MethodImplOptions.Synchronized)] bewirkt das gleiche.
15 Beispiel: Erzeuger & Verbraucher Faden 1: public void Erzeuger() { int i = 0; while(true) { lock(this) { while (queue.count>20) {/* NOP */ queue.enqueue("i="+i); i++; Faden 2: public void Verbraucher() { while(true) { lock(this) { while (queue.count<=0) {/* NOP */ string s = queue.dequeue(); Console.Write(s); Wo liegt das Problem?
16 Antworten Gute Idee: Der Zugriff auf die Schlange ist synchronisiert. Schlechte Idee: Der Hersteller und Verbraucher warten aktiv, falls sie nicht weiterarbeiten können. Verschwendung von Rechenzeit und Energie Schlechte Idee: Der Verbraucher hält den Monitor besetzt, solange er wartet. Der Hersteller kann niemals neue Arbeit in die Schlange einstellen, weil er beim Versuch, die Sperre zu erhalten, blockiert. Schlechte Idee: Der Erzeuger hält den Monitor besetzt, bis weniger als 20 Elemente in der Schlange sind. Der Verbraucher kann niemals Arbeit aus der Schlange nehmen, weil er beim Versuch, die Sperre zu erhalten, blockiert.
17 Wir stellen fest Falls eine Wächterbedingung fehlschlägt, muss eine Aktivität ihre Rechenzeit abgeben. Die Kontrolle sollte möglichst direkt an eine Aktivität weitergegeben werden, die weiterrechnen kann. Während eine Aktivität an einer Wächterbedingung wartet, muss sie den Monitor freigeben.
18 Beispiel: Erzeuger & Verbraucher Faden 1: public void Erzeuger() { int i = 0; while(true) { lock(this) { while (queue.count>20) { Monitor.Wait(this); queue.enqueue("i="+i); Monitor.PulseAll(this); i++; Faden 2: public void Verbraucher() { while(true) { lock(this) { while (queue.count<=0) { Monitor.Wait(this); Monitor.PulseAll(this); string s = queue.dequeue(); Console.Write(s); Übung: Warum erfüllt das Programm jetzt alle Anforderungen?
19 Beispiel (Alternative): Erzeuger & Verbraucher Faden 1 (Erzeuger): public void FirstThread() { int i = 0; Monitor.Enter(myQueue); while(i<100) { // Wait, if the queue is busy. Monitor.Wait(myQueue); // Push one element. myqueue.enqueue(i); // Release the waiting thread. Monitor.Pulse(myQueue); i++; Monitor.Exit(myQueue); Faden 2 (Verbraucher): public void SecondThread() { Monitor.Enter(myQueue); // Release the waiting thread. Monitor.Pulse(myQueue); // Wait in the loop, while the queue // is busy. Exit on the time-out // when the first thread stops. while(monitor.wait(myqueue,1000)) { // Pop the first element. int i = (int)myqueue.dequeue(); // Print the first element. Console.Write(i.ToString()); // Release the waiting thread. Monitor.Pulse(myQueue); Monitor.Exit(myQueue);
20 Tipps/Daumenregeln Ein mit Pulse/PulseAll geschicktes Signal erreicht nur eine Aktivität, die beim Absenden schon wartet! Das Signal wird nicht beim Monitor gespeichert Das Signal hat keinen Effekt, wenn niemand wartet! Verbinde Signale mit Zustand Ohne Wächterbedingung ist Wait(x) zu 99% falsch Negativ-Beispiel: lock(x) { Monitor.Wait(x); Verwende Wait(x) immer in einer Schleife Negativ-Beispiel: if (!condition) { Monitor.Wait(x); Ohne Zustandsänderung ist Pulse(x) zu 99% falsch Negativ-Beispiel: lock(x) { Monitor.Pulse(x); Prüfe Bedingung immer vor und nach dem Warten
21 Weitere Tipps/Daumenregeln In einem robusten Programm können alle Pulse- Aufrufe durch PulseAll ersetzt werden. Wenn der Monitor von außen zugänglich ist, kann jemand anderes: Signale stehlen : er lässt weitere Aktivitäten warten (schon gesehen) unerwartet mehr Signale schicken Kugelsicher : Immer PulseAll verwenden. Hinweis: Einige Java-VMs (!) machen keinen Unterschied zwischen notify und notifyall ( Pulse bzw. PulseAll)
22 Alternativen Es gibt noch weitere Methoden zur Koordination von Ausführungsfäden in System.Threading: Interlocked WaitHandle, und davon abgeleitet Auto- und ManualResetEvent Mutex represent operating-system synchronization objects and therefore expose advanced functionality, they are also less portable than Monitor, which is fully managed and in some circumstances is more efficient in its use of operating system resources.
23 Und wie macht man einen neuen Faden? Gegeben: public void M() { // Berechnungsmethode Erzeugung eines Fadens: using System.Threading; Thread t = new Thread(M); Faden laufen lassen: t.start(); Formal: Parameter vom Typ delegate void ThreadStart(); (definiert in System.Threading)
24 Zustände eines Fadens f (Eigenschaft Thread.ThreadState und Enumeration ThreadState) Suspended (Safepoint erreicht) f.resume SuspendRequested f.suspend Unstarted f.start Running f.abort AbortRequested Thread.Sleep f.join Wait(obj) Zeit um f joined Pulse(obj) f.interrupt f.abort Ausnahme behandelt, finally abgearbeitet WaitSleepJoin Stopped
25 Beispiel Ausgabe: name=, priority=normal, state=unstarted name=worker, priority=belownormal, state=running state=suspended state=running state=stopped Thread t = new Thread(P); Console.WriteLine("name={0, priority={1, state={2", t.name, t.priority, t.threadstate); t.name = "Worker"; hat nichts mit t zu tun, t.priority = ThreadPriority.BelowNormal; sondern nur mit dem t.start(); aktuellen Faden, also dem, der diesen Code ausführt! Thread.Sleep(1); Console.WriteLine("name={0, priority={1, state={2", t.name, t.priority, t.threadstate); t.suspend(); Thread.Sleep(1); Console.WriteLine("state={0", t.threadstate); t.resume(); Console.WriteLine("state={0", t.threadstate); t.abort(); Thread.Sleep(1); Console.WriteLine("state={0", t.threadstate);
26 Der Join-Aufruf Blockiert den aktuellen Faden (in dem f.join() aufgerufen wurde) bis der angegebene Faden (f) beendet wurde. Beispiel: Thread t = new Thread(P); Console.Write("Starte"); t.start(); Console.Write("Läuft "); t.join(); // wartet auf t Console.WriteLine( Ende");
27 Was passiert bei Abort? Erzeugt eine ThreadAbortException in dem Faden, für den Abort aufgerufen wurde. Hierdurch wird in der Regel der Ausführungsfaden beendet. Diese Ausnahme ist besonders, da sie automatisch am Ende eines etwaigen catch-blocks neu erzeugt wird. Alle finally-blöcke werden noch ausgeführt In einem finally-block können beliebig lang dauernde Operationen ausgeführt werden, deshalb kann man nur nach einem erfolgreichen Join-Aufruf sicher sein, dass der Faden beendet ist (alternativ können Sie sich noch gegen das Beenden mit ResetAbort wehren)
28 Vorder- und Hintergrundfäden Jeder Faden ist entweder ein Vordergrund- oder ein Hintergrundfaden Unterschied Solange min. ein Vordergrundfaden läuft, läuft das Programm Laufende Hintergrundfäden verhindern nicht, das sich das Programm beendet (die VM ruft bei ihnen Abort auf, sobald sich der letzte Vordergrundfaden beendet) Beispiel für einen Hintergrundfaden: Faden für die Wiedergabe der Musik eines Computerspiels Zugriff über Thread.IsBackground-Eigenschaft
29 ThreadPool Einen neuen Ausführungsfaden zu erzeugen ist zwar nicht teuer (z.b. im Vergleich zur Erzeugung einen neuen Prozesses), kostet aber doch eine Kleinigkeit Wenn die Menge der durch einen Faden zu bewerkstelligenden Arbeit aber im Vergleich zu seinen Erstellungskosten sinkt, lohnt sich ein eigener Faden irgendwann nicht mehr Lösung: eine beliebige aber feste Menge (i.d.r. 25 pro Prozessor) von Ausführungsfäden steht jedem Programm für kleine Aufgaben laufbereit zur Verfügung
30 Verwendung von ThreadPool Statt des delegate void ThreadStart() aus System.Threading wird delegate void WaitCallback (Object state) verwendet Mit der static Methode QueueUserWorkItem(WaitCallback cb, Object state) stellt man dem ThreadPool Arbeitsaufträge zur Verfügung Das Objekt state (optionaler Parameter) beinhaltet die von der Methode zu verwendenden Daten
31 Beispiel ThreadPool using System; using System.Threading; public class Example { public static void Main() { // Queue the task. ThreadPool.QueueUserWorkItem(new WaitCallback(MyProc)); Console.WriteLine("Main thread does some work, then sleeps."); // If you comment out the Sleep, the main thread exits before // the thread pool task runs. The thread pool uses background // threads, which do not keep the application running. (This // is a simple example of a race condition.) Thread.Sleep(1000); Console.WriteLine("Main thread exits."); // This thread procedure performs the task. static void MyProc(Object stateinfo) { // No state object was passed to QueueUserWorkItem, so // stateinfo is null. Console.WriteLine("Hello from the thread pool.");
32 Hinweis Vorsicht mit Suspend und Resume CAUTION Do not use the Suspend and Resume methods to synchronize the activities of threads. You have no way of knowing what code a thread is executing when you suspend it. If you suspend a thread while it holds locks during a security permission evaluation, other threads in the AppDomain might be blocked. If you suspend a thread while it is executing a class constructor, other threads in the AppDomain that attempt to use that class are blocked. Deadlocks can occur very easily.
33 Speichersynchronisation für Zugriffe auf einzelne Variablen Problem: Befehlsumordnende Optimierungstechniken (in Prozessoren, VM und/oder Übersetzer) können in parallelen Programmen zu unvorhersehbaren Effekten führen, wenn keine Synchronisationstechniken (z.b. lock) verwendet werden Das Schlüsselwort volatile markiert eine Variable als im Speicherzugriff immer zu synchronisieren Ein Lesezugriff auf diese Variable wird garantiert vor allen in der Befehlssequenz folgenden Speicherzugriffen ausgeführt Ein Schreibzugriff auf diese Variable wird garantiert nach allen in der Befehlssequenz vorangehenden Speicherzugriffen ausgeführt
34 Beispiel class Test { public static int result; public static volatile bool finished; static void Thread2() { result = 143; finished = true; static void Main() { finished = false; new Thread(new ThreadStart(Thread2)).Start(); while (true) { if (finished) { Console.WriteLine("result = {0", result); return; Ausgabe (mit volatile): Garantiert 143. Ausgabe (ohne): Eventuell 0.
35 Tipp Eine ausführliche Abhandlung des Themas mit vielen Beispielen findet sich unter (eine für den Druck aufbereitete Version findet sich auch auf der Webseite der Vorlesung: Englisch!
Multi-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
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:
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
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
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)
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.
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
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ä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
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,
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
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
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
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
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
MehrProgrammentwicklung ohne BlueJ
Objektorientierte Programmierung in - Eine praxisnahe Einführung mit Bluej Programmentwicklung BlueJ 1.0 Ein BlueJ-Projekt Ein BlueJ-Projekt ist der Inhalt eines Verzeichnisses. das Projektname heißt wie
MehrJava: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
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
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
MehrNeue Features in C# 2.0
Neue Features in C# 2.0 (gekürzt) Generische Typen Iteratoren Vereinfachte Delegate-Erzeugung Anonyme Methoden Partielle Klassen Sonstiges University of Linz, Institute for System Software, 2004 published
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
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
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
MehrProgrammierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
MehrProgrammieren I + II Regeln der Code-Formatierung
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme WS 2016/2017, SS 2017 Programmieren I + II Regeln der Code-Formatierung In diesem Dokument finden
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
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
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?
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
MehrElementare Konzepte von
Elementare Konzepte von Programmiersprachen Teil 2: Anweisungen (Statements) Kapitel 6.3 bis 6.7 in Küchlin/Weber: Einführung in die Informatik Anweisungen (statements) in Java Berechnung (expression statement)
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,
MehrUnterlagen. CPP-Uebungen-08/
Unterlagen http://projects.eml.org/bcb/people/ralph/ CPP-Uebungen-08/ http://www.katjawegner.de/lectures.html Kommentare in C++ #include /* Dies ist ein langer Kommentar, der über zwei Zeilen
MehrObjects First With Java A Practical Introduction Using BlueJ. Mehr über Vererbung. Exploring polymorphism 1.0
Objects First With Java A Practical Introduction Using BlueJ Mehr über Vererbung Exploring polymorphism 1.0 Zentrale Konzepte dieses Kapitels Methoden-Polymorphie statischer und dynamischer Typ Überschreiben
MehrGrundlagen der Fehlerbehandlung. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java.
Universität Osnabrück 1 Grundlagen der Fehlerbehandlung 3 - Objektorientierte Programmierung in Java Vorlesung 06: Ausnahme- und Fehlerbehandlung in Java SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Wenn
MehrObjektorientierte Programmierung OOP Programmieren mit Java
Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum
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
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
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
MehrLeJOS: Mindstorms in Java programmieren
LeJOS: Mindstorms in Java programmieren Alexander Koller Softwareprojekt "Sprechende Roboter" 30. April 2004 Überblick Warum Java? Was ist LeJOS? Motoren steuern Auf Sensoreingaben reagieren Wie geht's
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
MehrArbeitsblätter für die Lehrveranstaltung OOP JAVA 1
Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur
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
Mehr1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally
Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)
MehrListing 1: Cowboy. Listing 2: Woody
Musterlösung Test 3 Aufgabe 1: Cowboy Listing 1: Cowboy class Cowboy { public String rope ( Cowboy that ) { if ( this == that ) { return exclaim (); 5 else { return " Caught "; public String exclaim ()
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
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 16. Ausnahmen (Exception Handling)
Grundlagen der Programmierung Prof. H. Mössenböck 16. Ausnahmen (Exception Handling) Motivation Fehler können nicht immer dort behandelt werden, wo sie auftreten void p() { q(); Lösung void q() { r();
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
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
MehrGrundlagen der Programmierung Prof. H. Mössenböck. 6. Methoden
Grundlagen der Programmierung Prof. H. Mössenböck 6. Methoden Parameterlose Methoden Beispiel: Ausgabe einer Überschrift class Sample { static void printheader() { // Methodenkopf Out.println("Artikelliste");
MehrStack stack = new Stack(); stack.push ("Würstchen"); string s = (string) stack.pop(); Console.WriteLine (s);
D3kjd3Di38lk323nnm Der Typ object object (System.Object) ist die Ausgangsbasisklasse für alle Typen. Jeder Typ kann per Upcast in ein object umgewandelt werden. Um zu zeigen, wie das nützlich sein kann,
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
MehrPROGRAMMIERUNG IN JAVA
PROGRAMMIERUNG IN JAVA ZUWEISUNGEN (1) Deklaration nennt man die Ankündigung eines Platzhalters (Variablen) und Initialisierung die erste Wertvergabe bzw. die konkrete Erstellung des Platzhalters. In einem
MehrUML / Fujaba. Generierung von Java-Quellcode aus UML-Diagrammen. Marcel Friedrich
UML / Fujaba Generierung von Java-Quellcode aus UML-Diagrammen Marcel Friedrich Agenda Einleitung Struktur Verhalten Klassendiagramme Storydiagramme Statecharts Action methods 2 Thema Codegenerierung mit
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
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
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,
MehrC++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
Mehr1 Fehler-Objekte: Werfen, Fangen, Behandeln
1 Fehler-Objekte: Werfen, Fangen, Behandeln Tritt während der Programm-Ausführung ein Fehler auf, wird die normale Programm-ausführung abgebrochen und ein Fehler-Objekt erzeugt (geworfen). Die Klasse Throwable
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
MehrGrundlagen zur nebenläufigen Programmierung in Java
Grundlagen zur nebenläufigen Programmierung in Java Karlsruher Entwicklertag 2013 5. Juni 2013 Referent: Christian Kumpe Inhalt des Vortrags Was zeigt dieser Vortrag? Ein einfaches Beispiel mit allerlei
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...
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,
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 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
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
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,
Mehr9. Vorlesung Betriebssysteme
Dr. Christian Baun 9. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/39 9. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr. Christian
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]
Mehr1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen
1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen II.2.2 Methoden, Unterprogramme und Parameter - 1 - 2. Methoden
Mehr1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH
1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH Die Umgebungsvariable CLASSPATH kann im Hamster-Simulator sowohl für Compiler als auch für die Ausführung des Hamster-Programms gesetzt werden: Hierdurch
MehrEinstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
MehrInformatik B - Objektorientierte Programmierung in Java. Vorlesung 21: Threads 2. Inhalt
Universität Osnabrück 1 wait und notify 3 - Objektorientierte Programmierung in Java Vorlesung 21: Threads 2 SS 2006 Prof. Dr. F.M. Thiesing, FH Osnabrück Neben dem Monitorkonzept stehen mit den Methoden
MehrSchachtelung der 2. Variante (Bedingungs-Kaskade): if (B1) A1 else if (B2) A2 else if (B3) A3 else if (B4) A4 else A
2.4.6. Kontrollstrukturen if-anweisung: Bedingte Ausführung (Verzweigung) 2 Varianten: if (Bedingung) Anweisung (Anweisung = einzelne Anweisung oder Block) Bedeutung: die Anweisung wird nur ausgeführt,
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrEinstieg in die Informatik mit Java
1 / 24 Einstieg in die Informatik mit Java Variablenarten Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 24 1 Lokale Variablen 2 Lokale Variablen in Blocks 3 Lokale Variablen
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrTCP/IP Programmierung. C# TimeServer Java6 TimeClient
TCP/IP Programmierung C# TimeServer Java6 TimeClient Stand 19.10.11 21:24:32 Seite 1 von 16 Inhaltsverzeichnis Erläuterung...3 Software...3 C#TimeServer...4 Klasse ServerThread...6 Starten und Beenden...7
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
MehrSchleifen in C/C++/Java
Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.
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
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]
MehrAuD-Tafelübung T-B5b
6. Übung Sichtbarkeiten, Rekursion, Javadoc Di, 29.11.2011 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit 3 Stack und Heap Stack Heap 4 Blatt 6 1 Blatt 5 2 OOP Klassen Static vs. Instanzen Sichtbarkeit
MehrKlassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
MehrGrundlagen der Programmierung Teil1 Einheit III Okt. 2010
Grundlagen der Programmierung Teil1 Einheit III - 22. Okt. 2010 GDP DDr. Karl D. Fritscher basierend auf der Vorlesung Grundlagen der Programmierung von DI Dr. Bernhard Pfeifer Einschub Bevor wir mit den
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
MehrMethoden (fortgeschritten) in C# - 1
Methoden (fortgeschritten) in C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Opertatoren Überladung 2. delegate 3. Anonyme Methoden delegate Lamda Ausdruck-Lamdas Anweisung-Lamdas Variablenbereich
MehrJava Einführung ABLAUFSTEUERUNG Kapitel 3 und 4
Java Einführung ABLAUFSTEUERUNG Kapitel 3 und 4 Inhalt dieser Einheit Merkmale und Syntax der verschiedenen Kontrollstrukturen: if else switch while do while for break, continue EXKURS: Rekursion 2 Kontrollstrukturen
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
Mehr! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.
! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.4 Exceptions - 1 - Ausnahmen (Exceptions( Exceptions) Treten auf, wenn zur
MehrÜbung 1 mit C# 6.0 MATTHIAS RONCORONI
Übung 1 mit C# 6.0 MATTHIAS RONCORONI Inhalt 2 1. Überblick über C# 2. Lösung der Übung 1 3. Code 4. Demo C# allgemein 3 aktuell: C# 6.0 mit.net-framework 4.6: Multiparadigmatisch (Strukturiert, Objektorientiert,
MehrParallelverarbeitung mit Ruby
Fachhochschule Wiesbaden - Fachbereich DCSM Parallelverarbeitung mit Ruby Prozess-Ebene Multithreading 04.12.2008 2003, 2008 H. Werntges, FB Design Informatik Medien (DCSM), FH Wiesbaden 1 Fachhochschule
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
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
MehrAufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht:
Aufgabe 1.90: Ein Geschäft gibt ihren Kunden unterschiedliche Rabatte. Schreiben ein Programm, das folgende Rabattklassen vorsieht: o Klasse 0: kein Rabatt o Klasse 1: 4,5 % Rabatt o Klasse 2: 8,75% Rabatt
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 04: Einführung in Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Einführung in Kontrollstrukturen 3 Grundstrukturen von
MehrBeispiel: Methode mit einem Fehler. Diese Methode wird problematisch, wenn von außen eine Dauer von 0 Sekunden angegeben wird, etwa im Aufruf
16 Exceptions Zur Behandlung unerwarteter Situationen bietet Java Unterstützung in Form von Exceptions oder Ausnahmen. Den Sinn von Exceptions können wir Ihnen an einem kleinen Beispiel klarmachen. Nehmen
MehrMusterlösung Stand: 5. Februar 2009
Fakultät IV Elektrotechnik/Informatik Probeklausur Einführung in die Informatik I Hinweis: Diese Probeklausur ist eine kleine Aufgabensammlung, die etwa dem Schwierigkeitsgrad der Teilleistung TL 2 (Programmiertest)
MehrFH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken
4 Objektorientierte Programmierung in Java Prof. Dr. Ing. André Stuhlsatz Blöcke Blöcke erweitern einzelne Anweisungen, etwa bei Kontrollstrukturen später Beispiel: Einzelne Anweisung: anweisung; Erweiterung
MehrAngewandte IT-Sicherheit
Angewandte IT-Sicherheit Johannes Stüttgen Lehrstuhl für praktische Informatik I 30.11.2010 Lehrstuhl für praktische Informatik I Angewandte IT-Sicherheit 1 / 28 Aufgabe 1 Betrachten sie folgendes Programm:
Mehr