Ответы пользователя по тегу Многопоточность
  • Почему запросы выполняются последовательно?

    Kurku
    @Kurku
    Погромист
    Читай документацию:
    >>> help(Process.join)
    join(self, timeout=None)
        Wait until child process terminates

    Это значит, что интерпретатор будет ждать пока процесс закончится.
    То есть ты в своем коде на самом деле выполняешь все последовательно.
    А тебе надо писать что-то такое:
    from multiprocessing import Process
    from time import sleep
         
    def worker(n):
        print("the worker went to the office")  
        sleep(n)
        print("the worker has been walking for %d sec" % n)
         
    if __name__ == "__main__":
        plist = [] 
        for i in range(4, 0, -1):
            proc = Process(target=worker, args=(i,))
            plist.append(proc)
         
        for proc in plist:
            proc.start()

    Это возвратит:

    the worker went to the office
    the worker went to the office
    the worker went to the office
    the worker went to the office
    the worker has been walking for 1 sec
    the worker has been walking for 2 sec
    the worker has been walking for 3 sec
    the worker has been walking for 4 sec

    И да, процессы и потоки вещи совсем разные. С потоками работать намного удобнее. Так почему бы не использовать их.
    Ответ написан
    2 комментария