0

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

}
4

0 回答 0