Čo je lepšie multiprocesing alebo multithreading v Pythone?
Čo je lepšie multiprocesing alebo multithreading v Pythone?

Video: Čo je lepšie multiprocesing alebo multithreading v Pythone?

Video: Čo je lepšie multiprocesing alebo multithreading v Pythone?
Video: Java Multithreading : AtomicReference, ScheduledExecutorService и монада Either. Многопоточность. 2024, December
Anonim

The závitovanie modul používa vlákna, multiprocessing modul využíva procesy. Rozdiel je v tom, že vlákna bežia v rovnakom pamäťovom priestore, zatiaľ čo procesy majú samostatnú pamäť. Vďaka tomu je o niečo ťažšie zdieľať objekty medzi procesmi multiprocessing . Procesy spawnovania sú o niečo pomalšie ako spawnovanie vlákien.

Čo je teda lepšie multiprocesing alebo multithreading?

Kľúčový rozdiel medzi multiprocessing a multithreading je to multiprocessing umožňuje systému pridať do systému viac ako dva CPU multithreading nechá proces vygenerovať viaceré vlákna na zvýšenie výpočtovej rýchlosti systému.

Možno sa tiež opýtať, aké sú výhody používania multithreadingu namiesto viacerých procesov? preto viacvláknové programy môžu bežať oveľa rýchlejšie ako na jednoprocesorovom systéme. Môžu byť tiež rýchlejšie ako program pomocou viacerých procesov , pretože vlákna vyžadujú menej zdrojov a vytvárajú menšiu réžiu.

Okrem toho, je multithreading dobrý v Pythone?

V CPythone je možné vďaka Global Interpreter Lock spustiť iba jedno vlákno Python kódu naraz (aj keď niektoré knižnice orientované na výkon môžu toto obmedzenie prekonať). Vlákno je však stále vhodným modelom, ak chcete súčasne spúšťať viaceré I/O-viazané úlohy.

Je multithreading dobrý?

Viacvláknové nie je a dobre nápad, ak potrebujete zaručiť presné fyzické načasovanie (ako vo vašom príklade). Medzi ďalšie nevýhody patrí intenzívna výmena dát medzi vláknami. Povedal by som, že viacvláknové je dobre pre skutočne paralelné úlohy, ak sa veľmi nestaráte o ich relatívnu rýchlosť/prioritu/časovanie.

Odporúča: