Hallo Leute,
bin gerade dabei von C++ auf Java umzusatteln, um einige Projekte in Java zu realisieren.
Jetzt habe ich eine einfache File-Logging-Klasse geschrieben und beabsichtige, die Schreibvorgänge auf die Festplatte in einen Thread auszulagern. Die Klasse ist im Moment Single-Threaded und funzt soweit perfekt. Jetzt wäre es ganz schön Threads zu benutzen, weil Plattenzugriff ja erfahrungsgemäß das Programm ausbremst.
Die Klasse hat allerdings zwei Methoden LogNotice() und LogError(). Füge ich in die Klasse eine run()-Methode ein, wird diese zwar ausgeführt, aber würde es nicht funktionieren die einzelnen Methoden LogNotice() und LogError() anzusprechen? Dieses run() in der Klasse erinnert mich an C, wo es noch keine Klassen gab. Prinzipiell kann ja nur diese eine Methode ausgeführt werden bei einem Thread (zumindest nach Meinung der einschlägigen Literatur, die das erstmal grundlegend erklären möchte). Finde ich ein bissel schade. Am besten wäre folgendes:
1. Klassenobjekt erzeugen und damit Thread starten
2. Aufruf der Methoden
3. Thread Ende
Ich hab hier was in der Richtung
gesehen. Wäre das zu empfehlen?
Vielen Dank für Eure Aufmerksamkeit und Eure Hilfe,
bond
bin gerade dabei von C++ auf Java umzusatteln, um einige Projekte in Java zu realisieren.
Jetzt habe ich eine einfache File-Logging-Klasse geschrieben und beabsichtige, die Schreibvorgänge auf die Festplatte in einen Thread auszulagern. Die Klasse ist im Moment Single-Threaded und funzt soweit perfekt. Jetzt wäre es ganz schön Threads zu benutzen, weil Plattenzugriff ja erfahrungsgemäß das Programm ausbremst.
Die Klasse hat allerdings zwei Methoden LogNotice() und LogError(). Füge ich in die Klasse eine run()-Methode ein, wird diese zwar ausgeführt, aber würde es nicht funktionieren die einzelnen Methoden LogNotice() und LogError() anzusprechen? Dieses run() in der Klasse erinnert mich an C, wo es noch keine Klassen gab. Prinzipiell kann ja nur diese eine Methode ausgeführt werden bei einem Thread (zumindest nach Meinung der einschlägigen Literatur, die das erstmal grundlegend erklären möchte). Finde ich ein bissel schade. Am besten wäre folgendes:
1. Klassenobjekt erzeugen und damit Thread starten
2. Aufruf der Methoden
3. Thread Ende
Ich hab hier was in der Richtung
Code:
Logger l = new Logger();
Thread t = new Runnable() {
public void run() {
l.LogNotice();
}
}
t.start();
gesehen. Wäre das zu empfehlen?
Vielen Dank für Eure Aufmerksamkeit und Eure Hilfe,
bond