Ich muss zwei Programme schreiben. 1 sequenzielle (Fertig) und 1 parallel und ich habe etwas getan, aber ich weiß nicht, ob ich gemacht habe es parallel oder nicht, und ich muß auch wissen:Ich bin ein sehr Anfänger bei der Programmierung und brauche etwas Hilfe und Beratung
- Wenn (Thread.State Zustand = Thread . .currentThread() getState();) ist der Code, der den Status eines Threads anzuzeigen
- wie unterschiedliche Threads verschiedene Prozessoren zuzuweisen (4 Kerne)
- , wie der Status des Prozessors anzuzeigen
- Berechnungs für jeden Prozessor
- wie Fehlermeldungen (Memory Consistency Errors, etc.) zu generieren
Folgende ist mein 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));
}
}
Hauptklasse:
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();
}
}
Sie müssen ein Tutorial über Threads und Java google und beginnen Sie dort. Viel Glück. – 7663233
haben viel davon, aber immer noch verwirrt und kann nichts finden, auch nur im entferntesten zu meinen Bedürfnissen verwandt. –
Hallo und Willkommen zu Stackoverflow. Lesen Sie den [tourguide] (http://stackoverflow.com/tour), um zu erfahren, wie Sie Fragen richtig stellen und wie stackoverflow funktioniert. –