Pergunta

Então, eu estou brincando ao redor com Stackless Python e uma pergunta surgiu em minha cabeça, talvez este é "assumida" ou conhecimento "comum", mas eu não poderia encontrá-lo realmente escrito em qualquer lugar na stackless local .

O Stackless Python aproveitam multicore CPUs? Em Python normal, você tem a GIL estar constantemente presente e make (true) uso de múltiplos núcleos que você precisa usar vários processos, isso é verdade para Stackless também?

Foi útil?

Solução

Stackless python não fazer uso de qualquer tipo de ambiente multi-core que roda em.
Este é um equívoco comum sobre Stackless, pois permite que o programador tirar proveito de programação baseada em threads. Para muitas pessoas esses dois estão intimamente ligados, mas são, na verdade, duas coisas separadas.

Internamente Stackless usa um agendador de round-robin para agendar a cada tasklet (micro threads), mas não tasklet pode ser executado simultaneamente com um outro. Isto significa que se um tasklet está ocupado, os outros devem esperar até que o controle abandona tasklet. Por padrão, o programador não vai parar um tasklet e dar tempo de processador para outro. É responsabilidade do tasklet para agendar-se para trás no final da fila cronograma usando Stackless.schedule (), ou por terminar seus cálculos.

todas tasklets são assim executadas de forma sequencial , mesmo quando núcleos multiplpe estão disponíveis.

A razão pela qual Stackless não tem suporte multi-core é porque isso faz com que fios muito mais fácil. E este é apenas o que stackless é tudo sobre: ??

do site oficial stackless

Stackless Python é uma reforçada versão da programação Python língua. Ele permite que os programadores colher os benefícios de rosca baseada em programação sem o desempenho e problemas de complexidade associado com tópicos convencionais. o microroscas que Stackless adiciona ao Python são um barato e leve conveniência que pode se usado corretamente, dá os seguintes benefícios:

  • estrutura do programa melhorado.
  • código mais legível.
  • O aumento da produtividade do programador.

Aqui é um ligação para mais algumas informações sobre múltiplos núcleos e stackless.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top