Schlagwort: Grundlagen

Der sinnvolle Einsatz von Schnittstellen

Veröffentlicht am: 28. Januar 2017
Autor:

Die große Stärke von Schnittstellen ist, dass sie nachträglich einer Ableitungslinie hinzugefügt werden können. In .NET wird bspw. die Schnittstelle IDisposable für das Dispose-Pattern verwendet. In Java dient die Schnittstelle AutoCloseable dazu, für Klassen die Verwendung der try-with-resources-Anweisung zu ermöglichen.

Weiterlesen …

Thread-sichere Funktionen

Veröffentlicht am: 14. Mai 2016
Autor:

Thread-sichere Funktionen dürfen im Zusammenhang mit Multithreading uneingeschränkt benutzt werden. Es müssen also keine Maßnahmen zur Thread-Synchronisation getroffen werden. Einfache Beispiele für thread-sichere Funktionen sind mathematische Funktionen.

Weiterlesen …

Threads und Deadlocks

Veröffentlicht am: 17. Oktober 2015
Autor:

Der Einsatz von Sperren zur Thread-Synchronisation birgt immer ein Deadlock-Risiko. Blockierungen treten dann auf, wenn zwei Sperren in unterschiedlicher Reihenfolge benutzt werden. Das folgende Beispiel zeigt exemplarisch eine fehlerhafte Implementierung, die im Multithreading-Einsatz zu Deadlocks führen wird.

Weiterlesen …

Manuelle Thread-Synchronisation

Veröffentlicht am: 28. Dezember 2012
Autor:

Die Verwendung mehrerer Abarbeitungspfade (Threads) innerhalb eines Prozesses erfordert diverse Maßnahmen zur Thread-Synchronisation, um Wettlaufsituationen auf gemeinsam genutzte Ressourcen zu unterbinden. In den meisten Fällen handelt es sich dabei um die Ressource Speicher.

Weiterlesen …

Nullwerte für Wertetypen

Veröffentlicht am: 11. Oktober 2012
Autor:

Im .NET Framework sind Datentypen entweder Wertetypen oder Referenztypen. Wertetypen haben grundsätzlich einen Standardkonstruktor, der dafür sorgt, dass alle Member-Variablen mit ihrem Standardwert initialisiert werden. Als Standardwert wird dabei auf Speicherebene der Wert 0 verstanden. Es ist generell nicht möglich, für Wertetypen einen Standardkonstruktor zu implementieren.

Weiterlesen …

Eigenschaften statt schreibgeschützter Variablen

Veröffentlicht am: 10. Oktober 2012
Autor:

Im Hinblick auf die Robustheit von Bibliotheken sind öffentliche Eigenschaften tatsächlich öffentlichen Variablen vorzuziehen. Wird aus einer schreibgeschützten Eigenschaft eine veränderliche Eigenschaft, bleibt die Schnittstelle der Bibliothek kompatibel. Gleiches gilt für Variablen. Die Änderung einer schreibgeschützter Variablen zu einer Eigenschaft ist jedoch nicht kompatibel.

Weiterlesen …

Namensrichtlinien für C# und andere .NET-Sprachen

Veröffentlicht am: 20. Februar 2010
Autor:

Das .NET Framework beinhaltet zahlreiche Klassen und Strukturen, für die größtenteils einheitliche Namensregeln verwendet wurden. Diese Regeln tragen maßgeblich zum schnellen Erfassen von Klassen und Strukturen bei.

Weiterlesen …

Das Dispose-Pattern zur Ressourcenfreigabe in .NET

Veröffentlicht am: 20. Februar 2010
Autor:

Das .NET Framework unterscheidet zwischen Referenztypen, die immer auf dem Heap organisiert werden, und den (normalerweise) auf dem Stack abgelegten Wertetypen. Heap-Objekte werden automatisch durch den Garbage Collector freigegeben.

Weiterlesen …