Wykonaj wiele wątków jednocześnie

Aktualny kod to:

def export_data(file):
    <runs the db2 database command to export tables to file>

def export_to_files(yaml):
    logger = logging.getLogger("export_to_files")
    thread1 = threading.Thread(target=export_data, args=[out_file1])
    thread1.start()
    thread2 = threading.Thread(target=export_data, args=[out_file2])
    thread2.start()
    thread1.join()
    thread2.join()

def main():
    export_to_files()

if __name__ == "__main__":
    main()

Moje zrozumienie było takiejoin() blokuje tylko wywołujący wątek. Jednak nie zdawałem sobie z tego sprawythread1.join() nawet się zablokujethread2 od wykonania, zasadniczo sprawiając, że kod uruchamia tylko 1 wątek, tj.thread1.

Jak mogę wykonać oba wątki jednocześnie, podczas gdy główny wątek czeka na zakończenie obu?

EDIT: Stoję poprawiony, 2 wątki działają, ale wydaje się, że tylko 1 wątek faktycznie „robi” rzeczy w danym momencie.

Aby rozwinąć dalej,callable_method czyta dane z bazy danych i zapisuje do pliku. Podczas gdy teraz widzę 2 pliki aktualizowane (każdy wątek zapisuje się w oddzielnym pliku), jeden z plików nie jest aktualizowany przez dłuższy czas, podczas gdy drugi plik jest aktualny co do aktualnego czasu.

JestNie używany obiekt połączenia. Zapytania są uruchamiane z interfejsu wiersza komend db2.

questionAnswers(3)

yourAnswerToTheQuestion