J'ai besoin d'écrire deux programmes. 1 séquentielle (Terminé) et 1 parallèle et je l'ai fait quelque chose, mais je ne sais pas si je l'ai fait parallèle ou non et je aussi besoin de savoir:Je suis un débutant en programmation et j'ai besoin d'aide et de conseils
- Si (Thread.State state = Discussion .currentThread() getState();.) est le code pour afficher le statut d'un fil
- comment attribuer différents fils à des processeurs différents (4 noyaux)
- Comment afficher l'état du processeur
- calcul pour chaque processeur
- comment générer des messages d'erreur (erreurs de cohérence mémoire, etc.)
Après mon code:
class Threads implements Runnable {
@Override
public void run() {
Thread t = Thread.currentThread();
Thread.State state = Thread.currentThread().getState();
String Assignment = "calculations in array";
String name = "os.name";
String version = "os.version";
String architecture = "os.arch";
String[] array = new String[1312500];
int size = array.length;
Random r = new Random();
int[] values = new int[1312500];
int sumarray = 0;
int CountD = 0;
for (int i = 0; i < values.length; i++) {
int randomint = r.nextInt(100);
values[i] = randomint;
if ((values[i] % 2 != 0) && (values[i] >= 25 && values[i] <= 75)) {
sumarray += values[i];
CountD++;
}
}
System.out.println(t.getName());
System.out.println("Thread Id " + t.getId());
System.out.println("Thread Priority " + t.getPriority());
System.out.println("status " + state);
System.out.println("OS Name: " + System.getProperty(name));
System.out.println("OS Version: " + System.getProperty(version));
System.out.println("OS Architechture: " + System.getProperty(architecture));
System.out.println(Assignment);
System.out.println("Size of the Array is: " + array.length);
System.out.println("Total number of system cores(processors): " + Runtime.getRuntime().availableProcessors());
System.out.println("Difference of Array and Processors 1312500/4 = "
+ array.length/Runtime.getRuntime().availableProcessors());
System.out.println("The size of array is divisible by the number of processors");
System.out.println("Summary is: " + sumarray);
System.out.println("The Average is: " + (sumarray/CountD));
}
}
Classe principale:
class Concurrent {
public static void main(String[] args) {
Thread t1 = new Thread(new Threads());
t1.start();
Thread t2 = new Thread(new Threads());
t2.start();
Thread t3 = new Thread(new Threads());
t3.start();
Thread t4 = new Thread(new Threads());
t4.start();
}
}
Vous avez besoin de google up un tutoriel sur Threads et Java et commencer là. Bonne chance. – 7663233
a fait beaucoup de cela mais encore confus et ne peux pas trouver quelque chose même à distance liée à mes besoins. –
Salut et bienvenue à Stackoverflow. Veuillez lire le [guide de visite] (http://stackoverflow.com/tour) pour apprendre comment poser des questions correctement et comment fonctionne stackoverflow. –