Schlagwort-Archive: bedeutung

C# Threads: Was bedeutet „signaled“ beim AutoResetEvent-Konstruktor und im Kontext von AutoResetEvent?

Problemfeld

AutoResetEvent bietet über einen globalen oder übergeordneten Kontext die Möglichkeit durch den Aufruf der WaitOne-Methode innerhalb des Thread-Codes, Threads zu blockieren bis ein Signal aus einem anderem Kontext gesendet wird. Der andere Kontext sollte dabei auch Zugriff auf das steuernde AutoResetEvent-Objekt haben.

Konstruktor-Parameter

AutoResetEvent event_1 = new AutoResetEvent(true);
AutoResetEvent event_2 = new AutoResetEvent(false);

Ein Thread, welcher event_1.WaitOne() aufruft, blockiert nicht da signaled auf TRUE steht.

Ein Thread, welcher event_2.WaitOne() aufruft, blockiert da signaled über den Konstruktor mit FALSE initialisiert wurde.

Ruft ein Thread die Methode „WaitOne“ auf, wird dieser allerdings nur blockiert, wenn AutoResetEvent mit false initialisiert wurde.

Event auf „signaled“ ohne Konstruktor setzen

Um die blockierten Threads nun aus einem anderen Kontext, welcher auch Zugriff auf das AutoResetEvent-Objekt haben muss, zu steuern können die Methoden .Set() und .Reset() des AutoResetEvents aus dem steuerenden Kontext heraus genutzt werden:

// Setzt den Status auf "nicht signalisiert" / "non signaled" 
// Threads blockieren nach Aufruf von AutoResetEvent.WaitOne()
event_1.Reset(); 

// Setzt den Status auf "signalisiert" / "signaled"
// Threads blockieren NICHT nach Aufruf von AutoResetEvent.WaitOne()
event_2.Set(); 

Nur einer, der wartenden Threads erhält ein Signal wenn Set() aufgerufen wird. Will man alle wartenden Threads befreien, muss man Set() mehrfach aufrufen.

Unterschied zu ManualResetEvent

  • ManualResetEvent signalisiert allen wartenden Threads, dass diese die WaitOne()-Methode passieren dürfen. Sie ist also wie eine Tür, die sich für alle öffnet. ManualResetEvent.Reset(); schließt, die Tür, ManualResetEvent.Set(); öffnet die Tür.
  • AutoResetEvent signaliert maximal einem wartendendem Thread, dass er nach Aufruf der AutoResetEvent.WaitOne()-Methode weitermachen darf. Um alle blockierten Threads zu befreien, muss AutoResetEvent .Set() entsprechend der Anzahl wartender Threads aufgerufen werden. Wenn kein AutoResetEvent auf „signaled“ gesetzt wurde, wird auch niemand durchgelassen. Das entspricht der Warteschlange auf Ämtern oder Ärzten, wo man eine Nummer ziehen muss und immer nur einer aufgerufen wird.

Sea Shanty: Leave her Johnny, leave her (Johny, Jonny) / Deutsche Version / Deutsche Übersetzung

Video

Deutsche Version / Deutsche Übersetzung von „Leave her Johnny, leave her!“

Beschreibung

Das Shanty „Leave her Johny, leave her!“, dessen erste Aufnahme ins Jahr 1917 datiert werden kann, wurde traditionell am Ende der Schiffsreise an den Pumpen gesungen.

Der Song belegt derzeit nach Wellerman den zweiten Platz der Social Media Trends.

Aufgrund der Singbarkeit wurde diese Version nicht wortwörtlich sondern sinngemäß übersetzt. Nachträglich überlegt hätte ich in den Refrain noch den Verse „Unsere Reise endet, Wind bläst nicht“ eingebaut, ich weiß nur nicht ob man sich an Deck so viel merken wollte :-).

Die Phrase „Es ist Zeit für uns von Deck zu gehen“ passt meiner Meinung nach mehr in den deutschen Sprachgebrauch.

Das Shanty bezog sich auf die schale Heuer und als Ausgleich dafür auf die Zeit des Vergnügens im Hafen, den Umgang mit Dirnen, Schiffshändlern und wirten.

Deutsche Version / Deutsche Übersetzung

Ein alter See-e-mann zu ihm sprach 
"Geh nun Johnny ... geeehe"
Morgen ist schon wieder der Zahltag
Dann ist Zeit von Deck zu geh-h-en

Geh nun Johnny ... geeehe
O - hooh geh nun Johnny ... geeehe
Es wird Zeit für uns von Deck zu geh-h-en
Es ist Zeit von ihr zu geh-h-en

Har-te Ar-beit ; lau-er Wind
Geh nun Johnny ... geeehe
Uns von Liverpool bis London bringt
Es ist Zeit von Deck zu geh-h-en

Geh nun Johnny ... geeehe
O - hooh geh nun Johnny ... geeehe
Es wird Zeit für uns von Deck zu geh-h-en
Es ist Zeit von ihr zu geh-h-en

Käpt'n und Kameraden schlecht
Geh nun Johnny ... geeehe
wolln verfluchen und erstechen dich
Es wird Zeit von Deck zu geh-h-en

Geh nun Johnny ... geeehe
O - hooh geh nun Johnny ... geeehe
Es wird Zeit für uns von Deck zu geh'n
Es ist Zeit von ihr zu geh-h-en

Verdorb'nes Fleisch und schimmlig' Brot
Geh nun Johnny ... geeehe
Du isst es halt in deiner Not
Es wird Zeit von Deck zu geh-h-en

Geh nun Johnny ... geeehe
O - hooh geh nun Johnny ... geeehe
Es wird Zeit für uns von Deck zu geh'n
Es ist Zeit von ihr zu geh-h-en

Nehmt Abschied in der Morgenstund'
Geh jetzt Johnny ... geeehe
Der Schiffsrumpf ist schon leer gepumpt
Es ist Zeit von ihr zu geh-h-en

Geh nun Johnny ... geeehe
O - hooh geh nun Johnny ... geeehe
Es war Zeit für uns von Deck zu geh'n
Es war Zeit von ihr zu geh-h-en