0

私のコードでは、最初にデータベースから何かを更新しようとするコードがスレッド内にあり、更新が成功しない場合は挿入が試行されます。私の問題は、このコードが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(); 
    }

}
4

0 に答える 0