Python3 сравните скорость между несколькими потоками и одной проблемой потока
Я столкнулся с проблемой с несколькими потоками в Python3. Я хочу сравнить скорость между одним и несколькими потоками. Но временные затраты на один поток, как мне кажется, неверны в приведенном ниже коде. Это должно быть не менее 2 секунд (из-за GIL скорость между одним и несколькими потоками должна быть почти одинаковой в приведенном ниже коде), но на самом деле это было почти 0 секунд. Я обнаружил, что программа не входит в функцию thread_job() при выполнении функции main (), почему это происходит?
import threading import time def thread_job(): for _ in range(5): time.sleep(2) def main(): for _ in range(5): #Activate 5 threads to execute the time wait job. added_thread = threading.Thread(target = thread_job) added_thread.start() if __name__ == '__main__': start = time.time() main() end = time.time() print("Mutiple thread takes " + str(end - start) + '\n') #calculate the time cost for multiple thread. it should be nearly 2 seconds in theory. start_1 = time.time() thread_job() end_1 = time.time() print("single thread takes " + str(end_1 - start_1) + '\n') #calculate the time cost for single thread. it should be nearly 10 seconds in theory.
What I have tried: <pre> Output: Mutiple thread takes 0.0005013942718505859 single thread takes 10.002868175506592
Код был выполнен на windows Visual studio code .