nacheinander threads starten mit einer pause dazwischen (java)

Diskutiere nacheinander threads starten mit einer pause dazwischen (java) im Developer Network Forum im Bereich Hardware & Software Forum; mahlzeit, folgendes java-problem: nach einer bestimmten zeit soll immer ein thread gestartet werden. in einer for-schleife werden die threads...
  • nacheinander threads starten mit einer pause dazwischen (java) Beitrag #1
guzi

guzi

Bekanntes Mitglied
Dabei seit
11.02.2002
Beiträge
1.505
Reaktionspunkte
2
Ort
nirvana
mahlzeit,
folgendes java-problem:
nach einer bestimmten zeit soll immer ein thread gestartet werden. in einer for-schleife werden die threads gestartet und gleich danach wird mit der sleep-methode eine pause eingelegt. das klappt wunderbar. jetzt habe ich jedoch herausgefunden, dass die sleep-methode ungemein ungenau ist. ab 100ms pause kann ich mit der toleranz leben, jedoch wenn die pause drunter liegt (<100ms) wird das ergebnis zu sehr verfälscht.

so in etwa sieht der code aus:
Code:
for( int i=0; i<100; i++)
{
   myThreads[i].start();
   this.sleep(10);
}

das problem ist, dass die sleep methode zu ungenau ist unter 100ms. deshalb suche ich nach einer alternative.
das ziel ist, dass ich genau sagen kann, wieviele threads pro sekunde laufen. vielleicht hilft das weiter.

danke im vorus.
 
  • nacheinander threads starten mit einer pause dazwischen (java) Beitrag #2
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Halloechen,

java ist leider nicht fuer "Echtzeit" gebaut. Daher wirst Du das so nicht hinbekommen.
Weiss nicht genau was du machen moechtest aber mit Calendar.getTimeinMillis() sollte Dir die genaue Zeit in Millisekunden ausgeben. Mit Start/Endzeit koenntest Du dann berechnen, wie viele Threads in einer Sekunde gelaufen sind. Was aber, wenn ein Thread ueber die Sekundengrenze hinweglaeuft? Wo willst Du den mitzaehlen? Was ist mit der Zeit, die Du zum holen der Zeit benoetigst. Wie ich sehe kommt es Dir sehr auf hohe Genauigkeit an. Da sollte man sowas beruecksichtigen.
Was willst Du eigentlich machen?

Gruss, FFNB.
 
  • nacheinander threads starten mit einer pause dazwischen (java) Beitrag #3
guzi

guzi

Bekanntes Mitglied
Dabei seit
11.02.2002
Beiträge
1.505
Reaktionspunkte
2
Ort
nirvana
hallo FerFemNemBem

zunächst danke für deine hilfsbereitschaft. wollte nicht früher antworten, weil ich selbst noch ein bischen probieren wollte.

es geht um folgendes: jeder thread macht eine webservice-anfrage (methodenaufruf übers netz). dabei protokolliert jeder thread wieviel zeit der aufruf kostet.
Code:
Date startZeit = new Date();
  ws.methode();
  Date endZeit = new Date();
die threads werden in regelmässigen abständen gestartet
Code:
 for( int i=0; i<anz; i++)
  {
     myThreads[i].start();
 Thread.sleep( pause);
 }
da das ergebnis merkwürdig ist. habe ich die sleep-methode getestet und herausgefunden, dass sie bei kleinen werte zu ungenau ist.
das ganze muss nicht sooo genau sein. nur wird das ergbenis verfäscht wenn ich anneheme bei sleep(10) werden 100 threads/sek gestartet und stattdessen starten nur 50 threads/sek.
wie du erwähnt hast, verlasse ich mich nicht mehr auf die sleep-methode sondern berechne wieviele threads wirklich gestartet werden.
 
Thema:

nacheinander threads starten mit einer pause dazwischen (java)

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben