vcpu una tutorial trabajar tipos tiene thread son solo semaforos saber que procesadores procesador núcleos numero nucleos nucleo multihilos many los laptop how hilos funciona ejemplos devc cuantos cores con computadora como java c++ multithreading

java - tutorial - ¿Es posible ejecutar una aplicación multiproceso en un solo núcleo de una computadora multinúcleo?



trabajar con hilos en c++ (2)

Esta pregunta ya tiene una respuesta aquí:

Tengo una aplicación que necesito para ejecutar multiproceso, pero quiero que use solo un núcleo de la computadora, como si mi computadora tuviera un solo núcleo (conozco el comportamiento de la aplicación de multiproceso en una computadora con un solo núcleo), aunque no es .

Esta aplicación se implementará en una computadora del cliente (Windows XP y 7) y no quiero que mi aplicación use más de un núcleo. Se puede hacer esto? ¿Depende del lenguaje de programación? ¿O toda la gestión de hilos se deja al SO?

Gracias por adelantado.


Puede establecer la afinidad de todo el programa para enlazar a una sola CPU.

En Unix, puede usar el conjunto de taskset pero para Windows solo sé cómo hacerlo desde el administrador de tareas, lo que podría no ser adecuado para usted.

Tengo una biblioteca, Java Thread Affinity, que te permitirá establecer la afinidad programáticamente.

AffinitySupport.setAffinity(1); // only run on cpu 0.

Esto también limitará cualquier hilo iniciado desde ese punto a la misma afinidad.

Podría agregar una clase con un main () que establece la afinidad y llama a su main () normal, permitiéndole agregar esto sin alterar ninguno de sus códigos existentes.


Si no desea cambiar la fuente de su programa, puede usar los comandos del sistema operativo

En Linux puedes usar la herramienta cpulimit . Más detalles here y here

En Windows puede usar el parámetro / AFFINITY para el comando de inicio. Más detalles here