Entendendo python GIL - limite de E / S x limite de CPU
Derosqueamento python documentação
No CPython, devido ao bloqueio global de intérpretes, apenas um encadeamento pode executar o código Python de uma vez (mesmo que determinadas bibliotecas orientadas ao desempenho possam superar essa limitação). Se você deseja que seu aplicativo faça melhor uso dos recursos computacionais de máquinas com vários núcleos, é recomendável usar o multiprocessamento. No entanto, o encadeamento ainda é um modelo apropriado se você deseja executar várias tarefas associadas a E / S simultaneamente.
Agora eu tenho um trabalhador de threads como este
def worker(queue):
queue_full = True
while queue_full:
try:
url = queue.get(False)
w = Wappalyzer(url)
w.analyze()
queue.task_done()
except Queue.Empty:
queue_full = False
Aquiw.analyze()
fazendo duas coisas
requests
bibliotecaAnalisando o html raspado usandopyv8
biblioteca javascriptAté onde sei,1
está ligado à E / S e2
é vinculado à CPU.
Isso significa que o GIL solicitou2
e meu programa não funcionará corretamente?