在我的代码中,我在一个线程中有一个代码,它首先尝试从Database更新某些内容,如果更新不成功,则尝试插入。我的问题是这个代码被调用了两次(我不知道但是现在让我们忽略它)因此,插入被调用两次,因为更新没有完成(至少这是我的想法)。我在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();
}
}