Dwie funkcje działające w jednym momencie

0

Potrzebuję odpalić 2 funkcje, pierwsza będzie wykonywać obliczenia oraz zapisywać do bazy(gotowa libka do obliczeń), druga zaś pobierać z bazy oraz przesyłać dalej.
Próbowałem wykorzystać Thread

def fun:
 Thread(target=fun1(args)).start()
 Thread(target=fun2(args)).start()

Jednak odpala się tylko pierwsza funkcja, zaczyna działać dopiero, gdy poprzednią zakończę.
Próbowałem również użyć Process z multiprocessing i tutaj podobny problem.

0

A jak to robisz z multiprocessing?

0

@lion137:

def fun:
    p1 = Process(target = func1(args))
    p2 = Process(target = func2(args))
    p1.start()
    p2.start()

fun()

Próbowałem też z p1.join() p2.join()

Odpalam to w taki sposób, że trzymam do w funkcji, którą odpalam.

2
def fun():
   Thread(target=fun1, args=(args,)).start()
   Thread(target=fun2, args=(args,)).start()
5

Wyjaśniając problem: masz przekazać do thread funkcje a twoje fun1(args) WYWOŁUJE fukcje zamiast przekazać ją jako argument.
Różnica jak między upieczeniem ciasta samemu a daniem komuś przepisu. Chcesz dać 2 kolegom przepis na ciasto, ale zamiast tego pieczesz je sam i dopiero im dajesz...

0

@Patryk27: Dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1