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