Prendi un programma multi-threaded "perfetto" arbitrario, su una piattaforma multi-threaded arbitraria, usando un linguaggio di programmazione arbitrario.
Supponendo che questo "perfetto" programma multi-thread:
- è impeccabile in termini di condizioni di gara
 - gestisce perfettamente la memoria condivisa
 - potrebbe / non usare un meccanismo di blocco (sospensione del thread o mutex rientrano in questa categoria)
 - non ha bug imprevisti (100% senza bug)
 - non usa costrutti complicati di linguaggio / sistema che non possono essere tradotti in un altro sistema in qualsiasi circostanza
 
e assumendo che questa piattaforma arbitraria
- è / non è conforme a POSIX (non importa)
 - utilizza un modello di thread familiare
 - non trasforma il meccanismo di blocco in un vortice di codici spaghetti voodoo (probabilmente)
 
e assumendo questa lingua arbitraria
-  non utilizza costrutti di thread specifici del dominio (come la parola chiave   
synchronizeddi Java) - è platform agnostico al nucleo (come C e varianti)
 - può essere compilato in modo incrociato su molte architetture / piattaforme diverse (non è limitato alla piattaforma attiva)
 
il codice intrinsecamente può essere implementato in modo che venga eseguito come previsto su una piattaforma single-threaded ?
Ad esempio, al posto dei thread la piattaforma a thread singolo utilizza un modello simile alla co-routine per simulare i thread. Esiste un difetto di progettazione fondamentale con tali concetti che inibirebbe la possibilità di eseguire il programma in questo ambiente thread-absent / thread-emulato?
La risposta a questa ampia domanda è molto specifica per la piattaforma, ma come ho accennato prima mi interessa sapere se esiste una proprietà intrinseca con multi-threading che li rende impossibili da porta agli ambienti senza thread.
Inoltre (e più concretamente), ci sono piattaforme / architetture specifiche mainstream che non consentirebbero uno scenario simile?