Mijn irc client haalt om de zoveel millieseconden een string af van de irc server (die ik ook zelf geschreven heb) in een aparte thread (ik heb threads voor het zenden van gegevens, lezen van gegevens uit de chatbox, en lezen van server communicatie).
Ik heb deze thread na elke lus 1 seconde laten 'slapen' om de andere clients de kans te geven hun strings af te halen, ze gebruiken allemaal dezelfde methode om dit te doen:
deze methode word aangeboden door de IRC (geschreven in RMI) server. Nu mijn vraag: mag ik de sleep time van de threads verlagen zonder dat de server machine te zwaar belast wordt? En zo ja welke waarde zou hiervoor ideaal zijn?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| new Thread(new Runnable() {
public void run() {
try {
Thread.sleep(1000);
} catch (Exception f) {
addStatusLine("thread error\n" + f);
}
while (connected) {
try {
buffer = c.getData(d.getNick());
if (!buffer.equals("")) {
addStatusLine(buffer);
}
connected = d.getConnectedStatus();
} catch (Exception f) {
d.doAbsolutelyNothing();
}
}
}
}
).start(); |
Ik heb deze thread na elke lus 1 seconde laten 'slapen' om de andere clients de kans te geven hun strings af te halen, ze gebruiken allemaal dezelfde methode om dit te doen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public String getData(String nick) {
synchronized (data2) {
for (int i = 0; i < userVector.size(); i++) {
temp2 = userVector.elementAt(i);
tempUser2 = (User) temp2;
tempString = tempUser2.getNick();
if (tempString.equals(nick)) {
someString = tempUser2.getBuffer();
tempUser2.clearBuffer();
}
}
return someString;
}
} |
deze methode word aangeboden door de IRC (geschreven in RMI) server. Nu mijn vraag: mag ik de sleep time van de threads verlagen zonder dat de server machine te zwaar belast wordt? En zo ja welke waarde zou hiervoor ideaal zijn?
Clowns to the left of me, Jokers to the right