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í:
- Afinidad de hilos de Java 5 respuestas
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.