私のコードでは、最初にデータベースから何かを更新しようとするコードがスレッド内にあり、更新が成功しない場合は挿入が試行されます。私の問題は、このコードが2回呼び出されることです(大丈夫ではありませんが、今は無視しましょう)。このため、更新が完了していないため、挿入が2回呼び出されます(少なくともこれは私が思うことです)。使用すると思ったGoogleで検索しましたthread.join()
。私の質問はthread.join()
、私の場合に使用しても問題ないかどうかです。
ありがとう
public void persistChangesToDatabase() {
final Thread backThread = new Thread(new Runnable() {
@Override
public void run() {
try {
openDataBase();
<-- SOME CODE -->
//First, an UPDATE is tried
int rowsAffected = updateTable();
// If update fails an INSERT is tried
if (rowsAffected == 0) {
//Insert
insert();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
});
backThread.start();
try {
backThread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
}