Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Geplante Ereignisse mit Timerthreads

Frage Entwicklung Java

Mitglied: cranach

cranach (Level 1) - Jetzt verbinden

07.12.2008, aktualisiert 21:27 Uhr, 4511 Aufrufe, 2 Kommentare

Wie setze ich Priorität von Timertask

Hallo,
ich habe eine Tabelle mit den Spalten Veranstaltung, Datum, Uhrzeit und Priorität.
Mein Java-Programm muß zu den dazugehörigen Datum und Uhrzeiten den Namen der Veranstaltung ausgeben.
Ich habe schon sehr viel über Threads gelesen aber sehr weit bin ich nicht gekommen. Ich weiss nicht mal, ob die Idee, das ganze mit Timern zu lösen, richtig ist. Nun habe ich das Problem mit den Prioritäten. Ich kann für die Timer keine Prioritäten setzen. Muß ich etwa das Programm umgestalten und eine Klasse Timer die Schnittstelle Runnable implementieren lassen?
Im Moment sieht mein Programm so aus.
Bin dankbar für jeden Verbesserungsvorschlag

import java.sql.*;
import java. util . Date ;
import java. util . Timer ;
import java. util . TimerTask ;

class Task extends TimerTask implements Runnable
{
static Connection con;
static ResultSet r;
static Statement stmt;
static String drv = "sun.jdbc.odbc.JdbcOdbcDriver";
static String url = "jdbc:odbc:herhangibirsey";
static Timer[] time=new Timer[10];
static TimerTask[] task=new TimerTask[10];
static Thread[] thread=new Thread[10];
static String ereignis;

public static void main(String []args){

try{
Class.forName(drv);
con=DriverManager.getConnection("jdbc:odbc:MS Access Database");
stmt=con.createStatement();

}
catch(Exception ex){
ex.printStackTrace();
}

try{
r=stmt.executeQuery("Select * "+"From Ereignisliste");
int i=0;
while(r.next()){
time[i] = new Timer();
task[i] = new Task ( ) ;
thread[i] =new Thread(task[i]);
Date datum=r.getDate(1);
ereignis=r.getString("Ereignis");
int priorität=Integer.parseInt(r.getString("Priorität"));
thread[i].setPriority(priorität);
time[i].schedule(task[i],datum);
i++;

}
}
catch(Exception ex){
ex.printStackTrace();
}
}

public void run(){

System.out.println(ereignis);
}
}
Mitglied: filippg
07.12.2008 um 20:00 Uhr
Hallo,

warum willst du denn für jedes Ereignis einen eigenen Timer erstellen?
Gängig sind m.E. nach zwei Methoden:
1. Es gibt einene Timer, der zu Beginn jeder Minute ausgeführt wird, und dann checkt, ob es für diese Minute ein Ereignis gibt - sehr einfach zu implementieren.
2. Beim Start wird der Timer mit dem ersten Ereignis initialisiert. Wenn er das ausgeführt hat wird geschaut, wann das nächste Ereignis ist, und der Timer wird auf dieses Ereignis gesetzt. Schon etwas schwieriger zu implementieren, aber sicher die ressourcenfreundlichste Alternative.

1. hat übrigens den Vorteil, dass du zur Laufzeit jederzeit Änderungen an den Terminen vornehmen kannst, ohne bestehende Timer anpassen zu müssen oder neue zu erzeugen. Bei 2. müsste dazu nur geprüft werden, ob sich das nächste Ereignis geändert hat, bei der von dir angestrebten Implementierung ist es kaum möglich ohne alle Timer neu zu erstellen.

Gruß

Filipp
Bitte warten ..
Mitglied: cranach
07.12.2008 um 21:27 Uhr
danke erstmal.

die erste Lösung könnte ich meistern. Nur wo erfahre ich mehr über tImer?In Büchern wird nur nebenbei was über Timer erzählt. HAbe ich wo möglich bei den scheduleXXX methoden die passende Methode übersehen? Dem Timer muß ich tasks als parameter übergeben.Kann ich den Tasks Prioritäten vergeben?
Gruß
Bitte warten ..
Ähnliche Inhalte
Windows Server
AD Überwachung nach unterschiedlichen Ereignissen (3)

Frage von WinLiCLI zum Thema Windows Server ...

Batch & Shell
gelöst Windows Ereignisse Tracen und automatisieren? (11)

Frage von Xanathos57 zum Thema Batch & Shell ...

Windows Server
gelöst Powershell Skript als geplanter Task (9)

Frage von Ex0r2k16 zum Thema Windows Server ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Windows 10
Seekrank bei Windows 10 (18)

Frage von zauberer123 zum Thema Windows 10 ...

Monitoring
Netzwerk-Monitoring Software (18)

Frage von Ghost108 zum Thema Monitoring ...

Windows Server
gelöst Kopiervorgang schlägt fehl, weil Datei- und Ordnername zu lang sind (14)

Frage von Schroedi zum Thema Windows Server ...

Windows 10
Windows 10 Fall Creators Update Fehler (13)

Frage von ZeroCool23 zum Thema Windows 10 ...