python并發(fā)1000個(gè)http請(qǐng)求 python多線程請(qǐng)求urllist?
python多線程請(qǐng)求urllist?多線程的目的是并行運(yùn)行獨(dú)立的子任務(wù),以提高整個(gè)任務(wù)的效率。為什么有人說Python的多線程是雞肋呢?Gil lock限制進(jìn)程中的不同線程同時(shí)只能占用一個(gè)CPU。可
python多線程請(qǐng)求urllist?
多線程的目的是并行運(yùn)行獨(dú)立的子任務(wù),以提高整個(gè)任務(wù)的效率。
為什么有人說Python的多線程是雞肋呢?
Gil lock限制進(jìn)程中的不同線程同時(shí)只能占用一個(gè)CPU??梢钥闯?,當(dāng)使用多線程處理計(jì)算密集型任務(wù)時(shí),Python中的多個(gè)線程需要相互等待以獲得CPU資源。在這個(gè)時(shí)候,多線程不能并行,我們真的不具備預(yù)期的多線程能力。
但是,如果執(zhí)行的是Io密集型任務(wù),多個(gè)線程之間沒有太多CPU資源爭(zhēng)用,更多的是每個(gè)線程都在進(jìn)行Io傳輸和等待,此時(shí),多線程的能力還是可以發(fā)揮出來的。
所以我們不能簡(jiǎn)單地說Python的多線程是雞肋,但是它的設(shè)計(jì)限制了它的應(yīng)用場(chǎng)景。