Echt parallel geht das nicht. Aber das ist bei den meisten Prozessoren und Controllern nicht möglich.
Braucht es in der Regel ja auch gar nicht.
Normalerweise reagiert dein Programm auf Einflüsse von außen, wie z.B. ein Geber, der in Abhängigkeit von der Geschwindigkeit eine größer werdende Spannung ausgibt. Außerdem ist da noch ein Verbrauchssensor, der den Spritverbrauch durch Impulse überträgt.
Wenn du in deinem Programm die beiden über den ADC und Portabfrage einliest, die Werte umrechnest und dann auf dem Display darstellt, merkst du doch überhaupt nicht, ob die nun parallel oder nacheinander berechnet wurden. Hauptsache, es geht schnell genug.
Die Ausgabe der z.B. 3-stelligen Geschwindigkeit passiert auch nicht gleichzeitig, sondern eine Ziffer nach der anderen.
Und nebenbei kannst du dann auch noch auf eine Taste drücken, um damit die angezeigten Daten bzw. das Menu umzuschalten.
Evtl. willst du unmittelbar auf einen Zustandswechsel an einem Port reagieren, dann benutzt du einen externen Interrupt. Oder du willst nach einem bestimmten Zeitintervall eine Aktion durchführen, dann braucht es einen Timer.
Das alles läuft so quasi-parallel ab, dass du das Nacheinander wahrscheinlich nicht bemerken kannst.
Und wenn du jede Aufgabe sauber in separate Funktionen oder Subs aufteilst, dann lässt sich dies auch einfach programmieren. Nur gibt es häufig Abhängigkeiten zwischen den Blöcken, so dass sich die Trennung nicht so strickt durchführen lässt.

Gruß

Rolf