Unter Java gibt es Volatile Objects (siehe Fachbeitrag von Dan Saks), die über das Schlüsselwort "volatile" nutzbar sind und Objekte generieren, die außerhalb eines Programmes manipulierbar sind. Allerdings bin ich mir nicht sicher, ob ich das richtig verstanden habe. Was sind "Volatile Objects", handelt es sich hierbei um einen bekannten Objekttyp und wofür lassen sich diese Objekttypen nutzen? Und wie bilde ich diese entsprechend auch unter .NET nach (es scheint zumindest in C# auch das volatile-Schlüsselwort zu geben)?
Falls sich der Link nicht öffnen lässt, einfach nach "Dan Saks Volatile Objects" googeln.
Folgender Link gibt eine Erklärung zum volatile Schlüsselwort in C#: volatile (C#).
Zusammengefasst ist die Bedeutung, dass sichergestellt wird, dass eine Variable auch in Multithreading-Umgebungen sequentiell gelesen und geschrieben wird, ohne dass andere Sperrmechanismen erforderlich sind.
Der Artikel, den du in deiner Frage erwähnt hast, bezieht sich auf C++. Dort hat das Schlüsselwort volatile eine andere Bedeutung wie in C# oder Java. Wenn du dir folgenden Artikel ansiehst
wirdt du sehen, dass die Bedeutung des Schlüsselworts in C# und Java gleich ist. Das ist auch kein Wunder, da Anders Heijlsberg, der Schöpfer von C#, sich bei der Konzeption der Sprache stark an Java angelehnt hat.
Also, wenn ich mir http://en.wikipedia.org/wiki/Volatile_variable#In_Java ansehe, dann ist die Bedeutung von volatile in Java und C#, wenn überhaupt, erst seit Java 5 so ähnlich, dass man von "gleich" sprechen könnte. Und dann wäre Heijlsberg ein ziemlicher Hellseher ;-) Im Ernst: dass C# stark an Java angelehnt sein soll, halte ich für eine reichlich oberflächliche Sichtweise. C# hat von mehreren Sprachen gelernt (insbesondere denen, die Heijlsberg zuvor entworfen hat) und steht auf eigenen Füßen - es braucht sich nirgendwo "anzulehnen".
als ich vor 10 Jahren von Java nach C# umgestiegen bin, habe ich mich sofort heimisch gefühlt. Das lag unter anderem an den starken Ähnlichkeiten in der Syntax und den Funktionalitäten des Frameworks. Natürlich ist C# eine eigenständige Sprache. Anders Heijlsberg hat sich "nur" das Beste aus verschiedenen Sprachen geborgt und neu zusammengewürfelt (das bewerte ich positiv). Von Anfang an gab es allerdings zwischen Java und .NET einen Wettkampf um die beste Funktionalität. Mal lag .NET vorne, mal Java aber meistens .NET :-))