Si entiendo lo que estás preguntando, es posible, pero es algo muy, muy malo.
El ejemplo canónico de lo que está describiendo sería mantener un contador que se incrementa en múltiples hilos. Esto no requiere casi nada en términos de potencia informática, pero requiere una coordinación cuidadosa entre los hilos. Mientras solo un hilo a la vez haga un incremento (que en realidad es una lectura seguida de una adición seguida de una escritura), su valor siempre será correcto. Esto se debe a que un subproceso siempre leerá el valor "anterior" correcto, agregará uno y escribirá el valor "siguiente" correcto. Obtenga dos hilos en la acción al mismo tiempo y ambos leerán el mismo valor "anterior", obtendrán el mismo resultado del incremento y escribirán el mismo valor "siguiente". El contador se habrá incrementado efectivamente solo una vez, aunque dos hilos piensen que cada uno lo hizo.
Esta dependencia entre el tiempo y la corrección es lo que la informática llama una condición de carrera .
Las condiciones de carrera a menudo se evitan mediante el uso de mecanismos de sincronización para asegurarse de que los subprocesos que desean operar en una parte de datos compartidos tengan que estar en línea para acceder. El contador descrito anteriormente podría usar un bloqueo de lectura-escritura para esto.
Sin acceso al diseño interno de Dragon Age: Inquisition , todo lo que cualquiera puede hacer es especular sobre por qué se comporta de la manera en que lo hace. Pero intentaré basarme en algunas cosas que he visto en mi propia experiencia:
Puede ser que el programa se base en cuatro hilos que se han ajustado para que todo funcione cuando los hilos se ejecutan sin interrupción en sus propios núcleos físicos. El "ajuste" podría venir en la forma de reorganizar el código o insertar durmientes en lugares estratégicos para mitigar los errores inducidos por la condición de la raza que surgieron durante el desarrollo. Nuevamente, todo esto es una conjetura, pero he visto las condiciones de carrera "resueltas" de esa manera más veces de las que me gustaría contar.
Ejecutar un programa como ese en cualquier cosa menos capaz que el entorno para el que se ajustó introduce cambios de tiempo que son el resultado de que el código no se ejecuta tan rápido o, más probablemente, cambios de contexto. Los cambios de contexto ocurren de manera física (es decir, los núcleos físicos de la CPU cambian entre el trabajo que tienen sus núcleos lógicos) y lógico (es decir, el sistema operativo en la CPU está asignando trabajo a los núcleos), pero tampoco es una divergencia significativa de lo que sería el tiempo de ejecución "esperado". Eso puede provocar un mal comportamiento.
Si Dragon Age: Inquisition no da el simple paso de asegurarse de que haya suficientes núcleos físicos disponibles antes de continuar, es culpa de EA. Probablemente estén gastando una pequeña fortuna respondiendo llamadas de soporte y correos electrónicos de personas que intentaron ejecutar el juego con muy poco hardware.