OK, ich habe heute darüber nachgedacht und bin gekommen, um nach völlig subjektiven und voreingenommenen Meinungen zu fragen . Trotzdem denke ich paradoxerweise auch nicht, dass es Flammenkriegsfutter ist. Ich denke, es gibt Raum für perfekt zivilisierte Gespräche - es ist kaum Vim gegen Emacs.
Ich habe viele Parallelitätsabstraktionen verwendet, insbesondere solche, die auf Threads basieren. Es gibt einen großen Trend unter ihnen, ob es sich um Nachrichtenübermittlung, standardmäßig unveränderliche oder standardmäßige Thread-Lokalisierung oder andere handelt.
Der Trend geht dahin, dass sie alle die Idee von Threads umkehren, indem sie den Datenaustausch explizit und nicht implizit machen. Das heißt, alle Daten werden nicht gemeinsam genutzt, sofern nicht anders angegeben. Dies ist das Gegenteil von herkömmlichem Threading in Sprachen wie Java. (Ich weiß, dass Java seine eigenen Parallelitätsabstraktionen auf höherer Ebene unterstützt.) Beispielsweise übergeben Sie Nachrichten explizit. Sie geben explizit an, welche Variablen threadlokal sind. Sie geben explizit an, welche Variablen veränderbar sind. Dies sind nur einige Beispiele, die in einigen Sprachen zu finden sind.
Ich dachte, dieser einfache Stil der Parallelität sei ein modernes Konzept. Ich lag falsch. Ich habe kürzlich angefangen, mit UNIX-Spielzeugen wie fork () und pipe () herumzuspielen, und ich war schockiert zu entdecken, dass es seit dem Start von UNIX mühelose, explizite Parallelitätsmechanismen gibt.
Es ist etwas seltsam zu erkennen, dass C + UNIX aus den 70er Jahren die Parallelität weitaus einfacher macht als viele moderne trendige Threading-Mechanismen.
Also, hier ist was ich mich frage ... versuchen diese modernen Thread-Abstraktionen einfach, Prozesse im UNIX-Stil über Threads zu emulieren, mit all ihren expliziten und nicht standardmäßig geteilten Merkmalen? Ich weiß, dass einige Mechanismen wie STM Dinge wie Transaktionen im DB-Stil bieten, die wirklich eine moderne und innovative Lösung für die Parallelität darstellen, aber die meisten scheinen nur neue Wege zu sein, wie UNIX-Codierer es vor langer Zeit getan haben.
Um nur zu sagen, ich bin kein UNIX-Fan, keine Vorstellungskraft. Ich bin mir bewusst, dass Prozesse auf vielen Plattformen viel langsamer als Threads sind, aber ich spreche konzeptionell darüber.