Wenn das tatsächlich alles ohne Zutun des Programmierers stattfindet, sollte manzumindest wissen, wo man Semaphore o. ä. vorsehen muss und wie man die atomrisiert anlegen kann.
Das Rechenmodell von Parallel.js ist darauf ausgelegt, dass du mit unveränderlichen Zuständen und ohne Nebenwirkungen programmierst. Das heißt, du vermeidest Race-Conditions grundsätzlich und begibst dich erst gar nicht in die missliche Lage ein Problem wechselseitigen Ausschlusses lösen zu müssen. Das spart viel Code, der mit dem eigentlichen Programmierproblem nichts zu tun gehabt hätte, der also nur der Buchhaltung gedient hätte. Man vermeidet außerdem Folgeprobleme, wie Deadlocks oder Fairness-Bedingungen. Der beste Code ist der, den man nie schreiben muss.
Witzigerweise nennt sich das dann Self-Hosted
Self-hosted benutzt man ganz allgemein für Programmiersprachen-Interpreter, (JIT-)Compiler und Ausführungsumgebungen, die teilweise in der Programmiersprache selbst geschrieben sind. Der C++-Compiler wird zum Beispiel auch in C++ geschrieben, eine neue Compiler-Version wird also von einer älteren Compiler-Version übersetzt.