class SendMail implements Runnable {
Thread OracleBakThread;
Thread SleepThread = new Thread(this);
public static void main(String args[]){
SendMail objSendMail= new SendMail();
objSendMail.startInfiniteLoop();
}
public void startInfiniteLoop() {
for(;;) {
SleepThread.sleep(1000);
OracleBakThread = new Thread(this);
OracleBakThread.start();}
}
public void getBackupFun() {
dbConnectionFactory objdbConnectionFactory = new dbConnectionFactory();
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
query = "check if database is false";
while (rs.next()) {
// If database is true, Send mail, Update database
}
}
public void run() {
int minute=0;
Calendar calender = Calendar.getInstance();
minute=calender.get(Calendar.MINUTE);
if (minute==25) {
getBackupFun();
}
}
}
Und wenn meine Datenbank istWas passiert, wenn ich einen Thread in der Endlosschleife starte und meine Datenbank aktualisiere?
id b_status
1 false
2 false
3 false
Also meine Frage ist, eine Zeile aktualisiert wird jedes Mal, wenn ich einen neuen Thread meine run-Methode erstellen. Da diese Thread-Erstellung jedoch innerhalb einer Endlosschleife erfolgt, wie funktioniert mein Update?
Wird es weiterhin meine Datenbank aktualisieren?
Oder der erste Thread wird die erste Zeile aktualisieren, die zweite wird die zweite aktualisieren?
in meinem Haupt-Java-Code verwende ich einen Code wie folgt: while (true) {SleepThread.sleep (1000); OracleBakThread = neuer Thread (this); OracleBakThread.start();} und mein Programm funktioniert gut. Ich bin hier, um zu verstehen, wie es funktioniert, ob ein Therad die ganze Datenbank aktualisiert oder mehrere Threads tun werden? –
Sie müssen also davon ausgehen, dass die maximale Zeit, die jedes Update benötigt, 1 Sekunde beträgt. Das könnte für Sie funktionieren, aber es ist definitiv kein guter Programmierstil, warum möchten Sie sogar jede Zeile in einem eigenen Thread aktualisieren? – FatTony
Eigentlich sende ich eine Mail in diesem Prozess, wenn die Datenbank falsch ist, dann sende eine Mail und aktualisiere meine Datenbank. aber logisch, was wird passieren? Ich weiß nicht, ob ein Therad eine Zeile aktualisiert, ein anderes wird eine andere Zeile aktualisieren. Ich bin hier, um das zu klären. –