Como usar jProgressbar em classes de comparação de arrayList?

Tenho uma classe que compara dois ArrayList, um com informações adicionadas pelo usuário e outro com consulta do banco de dados.

Depois que a consulta é feita, mando este objeto para outra classe que realiza a escrita desses dados em um arquivo, gostaria que enquanto estas verificações fossem feitas mostrasse um jProgressbar pra o usuário não ter a impressão de que o sistema está travado.

public ArrayList<ModeloCadastroTerceiro> verificaCodigoTerceiro(ArrayList<ModeloCadastroTerceiro> modelo) {

        ConectaBanco conecta = new ConectaBanco();

      conecta.conexao();
      StringBuilder str_busca = new StringBuilder(); 

        ArrayList<ModeloCadastroTerceiro> modeloRetorno = new ArrayList<>();

        ModeloCadastroTerceiro mod;

        str_busca.append('(');
        for (ModeloCadastroTerceiro modelo1 : modelo) {
            str_busca.append("'");
            str_busca.append(modelo1.getCpfTerceiro());
            str_busca.append("'");
            str_busca.append(',');
        }
       
        str_busca.deleteCharAt((str_busca.toString().length() - 1));

        str_busca.append(')');
        
        String busca = String.valueOf(str_busca);
       
        conecta.executaSQL("select * from cadastro_terceiros where cpf_cnpj_terceiro in" + busca);

        try {
            conecta.rs.first();

            do {
                mod = new ModeloCadastroTerceiro();
                mod.setCodTerceiro(conecta.rs.getInt("id_prosoft_terceiro"));
                mod.setCpfTerceiro(conecta.rs.getString("cpf_cnpj_terceiro"));
                modeloRetorno.add(mod);
            } while (conecta.rs.next());

        } catch (SQLException ex) {
            if (ex.getErrorCode() == 0) {

            } else {
                Logger.getLogger(RecuperaInformacaoBanco.class.getName()).log(Level.SEVERE, null, ex);
            }

        }

       ArrayList<ModeloCadastroTerceiro> fim = new ArrayList<>();
        ModeloCadastroTerceiro modFim;

        for (ModeloCadastroTerceiro mod1 : modelo) {

            boolean flag = false;//usada para marcar terceiro não encontrado

            for (ModeloCadastroTerceiro te1 : modeloRetorno) {

                if (mod1.getCpfTerceiro().equals(te1.getCpfTerceiro())) {
                    flag = true;
                }
            }

            if (flag == false) {
                modFim = new ModeloCadastroTerceiro();
                modFim.setCodTerceiro(mod1.getCodTerceiro());
                modFim.setNomeTerceiro(mod1.getNomeTerceiro());
                modFim.setCpfTerceiro(mod1.getCpfTerceiro());
                fim.add(modFim);
            }else{
                System.out.println("TERCEIRO JA CADASTRADO... NÃO SERA IMPORTADO");
            }

        }
        return fim;
    }

Depois disso eu chamo a classe que escreve no arquivo a partir de um ArrayList

public void escreverNoArquivo(File arquivo, ArrayList<String> texto) {

        FileWriter fw;
        BufferedWriter bw;

        try {

            fw = new FileWriter(arquivo);
            bw = new BufferedWriter(fw);

            // Recupera cada linha do texto e escreve no arquivo
            for (int i = 0; i < texto.size(); i++) {

                // Escreve o texto no arquivo
                bw.write(texto.get(i));
                // Quebra de linha
                bw.newLine();

            }

            bw.close();

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

Será que alguém poderia me ajudar a fazer um jProgressBar que mostre o andamento disso?

Já agradeço por ter chegado ate aqui!!!
Obrigado

Veja esse link. Montei um exemplo usando jprogressbar com thread simulando (usando sleep) um processamento. Basta adaptar seu código para usar esse esquema. Veja a parte da resposta com um exemplo usando thread.