Re: Einfaches Java-Programm parallelisieren



Heiner Kücker <mail@xxxxxxxxxxxxxxxx> writes:

Stefan Kuhne schrieb
ich habe ein Programm, dass eine aufwendige Berechnung in einer
for-Schleife sehr häufig macht.

Die Verteilung der Berechnung auf mehrere Threads
ist nur dann performanceverbessernd, wenn mehrere
Prozessoren(-Kerne) benutzt werden.

Hallo Heiner,

ich verwende hier auch oft Mehrprozessormaschinen, deshalb sind Threads
auch für mich interessant. Bisher habe ich das meist recht aufwändig
gemacht mit mehreren Klassen und so, aber Dein Beispiel finde ich für
einfache Aufgaben sehr schön. Nur eine Frage hätte ich noch: Ist der
sleep-Aufruf auch bei komplexeren Rechnungen empfehlenswert, oder hast
Du den nur hier eingebaut, weil der restliche Codeteil so kurz ist?

[...]
/*
* Thread 1
*/
final Thread thread1 =
new Thread() {
/* (non-Javadoc)
* @see java.lang.Thread#run()
*/
public void run()
{
// Start mit 0
for (int i = 0; i < valIntArr.length; i += 2 )
{
System.out.println( valIntArr[ i ] );
ThreadUtil.sleepCatched( 100 );

Den Aufruf meine ich. Ist da normalerweise z. B. yield() besser?

}
}
};
[...]

Viele Grüße
Malte
.



Relevant Pages

  • Re: Fortschrittsbalken anzeigen ?
    ... Auftretende Ereignisse (wie z.B. dein Timer!) werden in der Meldungsschleife zwischengespeichert und erst dann ausgeführt, wenn das Programm "nichts besseres" zu tun hat. ... Den Timer nun in einen anderen Thread zu verlagern oder 'nen anderen Timertyp zu verwenden, kann ich absolut nicht empfehlen! ... die Berechnung in einen eigenen Thread zu stecken. ... Außerdem sollte DoEvents nicht zu häufig aufgerufen werden, da es ziemlich viel Leistung fressen kann. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Fortschrittsbalken anzeigen ?
    ... da kann ich aber genau das Gegenteil empfehlen. ... über die Zeitscheibensteuerung des Betriebssystem der ausgelagerte thread ... Moment nicht nur dein Timer ausgeführt wird, ... Button_Click-Ereignisse (wodurch deine Berechnung ggf. ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Fortschrittsbalken anzeigen ?
    ... Thread und der der Berechnung nicht durch gleichzeitige Zugriffe auf ... den Progressbar im Thread des Formulars? ... der Progressbar braucht keinen Refresh, ...
    (microsoft.public.de.german.entwickler.dotnet.vb)
  • Re: Class in neuem Thread ausfuehren
    ... Nach dem die Klasse geladen wurde wird die ... Methode startin einer Unterklasse als Thread ausgefuehrt um die GUI ... Der "richtige Weg" nicht eine GUI mit berechnung starten zu lassen, sonder die GUI asynchron einen Auftrag für die Berechnung geben zu lassen, also die Berechnung in einem anderem Thread starten, und nur die Berechnung. ...
    (de.comp.lang.java)
  • Re: Lasst das =?UTF-8?B?TsO2cmdlbG4gYmVnaW5uZW4h?=
    ... Interessant ist auch die Verteilung der Powercars - beim K1 nur in der ... vermuten. ... Vielleicht sollte ich meinen alten Thread bzgl. der ...
    (de.etc.bahn.eisenbahntechnik)