Как вынести функцию в отдельный поток

У меня есть функция getHistoryDao которую нужно вынести в отдельный поток:

fun getHistoryDao() : HistoryDao {
        synchronized(HistoryDataBase::class.java) {
            if (db == null) {
                if (appInstance == null) throw  IllegalAccessException(" APP must not be null")

                    db = Room.databaseBuilder(
                        appInstance!!.applicationContext,
                        HistoryDataBase::class.java,
                        DB_NAME
                    )   
                        .build()
                }
        }

        return db!!.historyDao()
    }

}

Использовал Thread, выдаёт NullPointerException

fun getHistoryDao() : HistoryDao {
        synchronized(HistoryDataBase::class.java) {
            Thread{
                if (db == null) {
                    if (appInstance == null) throw  IllegalAccessException(" APP must not be null")

                    db = Room.databaseBuilder(
                        appInstance!!.applicationContext,
                        HistoryDataBase::class.java,
                        DB_NAME
                    ).build()
                }
            }.start()
        }

        return db!!.historyDao()
    }

Ответы (0 шт):