gregorss:
Oh, ich dachte, dass Dein Hinweis auf Forth der Hinweis auf eine Sprache sei, die sowas ermöglicht.
Worauf Du hinaus möchtest, ist präemptives Multitasking, und das ist keine Sache der verwendeten Programmiersprache, sondern eine Angelegenheit des zugrunde liegenden BETRIEBSSYSTEMS.
Wenn auf der Zielplattform ein BETRIEBSSYSTEM läuft, das PRÄEMPTIVES MULTITASKING unterstützt, dann dürfte mit ziemlicher Sicherheit JEDE PROGRAMMIERSPRACHE für diese Zielplattform ein "Multithreading" unterstützen, also dass Du innerhalb eines Programms mehrere logische Handlungsstränge als "Thread" starten kannst, die per präemptivem Multitasking abgearbeitet werden. Wenn Du dann in einem Thread ein "delay()" machst, wird das BETRIEBSSYSTEM diesen Thread solange deaktivieren, bis die Zeit um ist, und dem Thread erst dann wieder Rechenzeit zuteilen. Und solange sind nur die übrigen Threads aktiv, meistens in einem Zeitscheibenverfahren: Also jeder Thread bekommt zum Beispiel eine Millisekunde Rechenzeit, dann ist der nächste Thread dran etc. Wobei bei Mehrkern-Prozessoren, die Threads vom BETRIEBSSYSTEM auch auf mehrere Rechenkerne verteilt werden können.
Auf Mikrocontrollern ohne Betriebssystem kannst Du Multi-Threading aber komplett vergessen, sondern auf Plattformen komplett ohne Betriebssystem (so wie Arduino) oder auf Singletasking-Betriebssystemen (wie in den Achtzigerjahren MS-DOS) kannst Du - egal mit welcher Programmiersprache - nur Single-Tasking-Programme programmieren, und für ein "kooperatives Multitasking" bist Du selbst verantwortlich, ohne dass Dich dabei ein Betriebssystem durch Zuteilung von Rechenzeit im Zeitscheibenverfahren mit einem präemptiven Multitasking unterstützt.
Multitasking-Betriebssysteme sind in zahlreicher Ausführung vorhanden: Windows, Linux, MAC OS, Android etc., und für jedes Betriebssystem existiert mindestens eine, meistens aber sogar mehrere verschiedene Programmiersprachen, die Multithreading unterstützen, da braucht gar nix neu erfunden zu werden, weil es das alles schon gibt.
Aber es gibt eben kein Multi-Threading auf Plattformen, die ohne Betriebssystem laufen.