2017-01-03 10 views
1

У меня есть kivy приложение в python, который использует некоторые потоки. Поскольку python не может запускать эти потоки на разных ядрах из-за блокировки Global Interpreter Lock, мне бы хотелось попробовать использовать PyPy и посмотреть, могу ли я сделать потоки быстрее с разных ядер с PyPy отличается и предлагает stackless (что же это такое? :).Python и потоки с PyPy?

ли кто-то имеет какую-то информацию, чтобы поделиться о том, как сделать простую программу питона, который запускает несколько потоков с помощью модуля threading, работает с интерпретатором PyPy таким образом, что он использует этот Stackless featuer?

ответ

3

PyPy не будет решать проблемы Python ведения одной-нить каждый раз, поскольку он также использует GIL - http://doc.pypy.org/en/latest/faq.html#does-pypy-have-a-gil-why

Кроме того, Kivy сложный проект внедрения сам Python - хотя я не» я знаю это очень хорошо, я сомневаюсь, что можно переключить Python, используемый в нем для Pypy.

В зависимости от того, что вы делаете, вы можете использовать модуль multiprocessing вместо threading - это капли в замене, которая сделает прозрачную межпроцессные вызовы функций Python, и, следовательно, может воспользоваться Многолучевым сердечники. https://docs.python.org/3/library/multiprocessing.html

Это стандарт в CPython и, вероятно, может использоваться внутри Kivy, если (и только если) весь код в подпроцессе только заботиться о номере хруста, и так далее, и все взаимодействия с пользователем и обновления дисплея производятся в основном процессе.

+0

jeah, я на данный момент пытаюсь реализовать с помощью многопроцессорных инструментов, таких как shitty, потому что переход на коммуникацию означает, что мне нужно передать много материала, которое раньше было разделяемой памятью =), python в этом отношении действительно отстой, и я недавно слышал о GIL – Gabriel

+1

, используя общую память, чтобы связываться с потоками, в конечном итоге кусая вас ... используйте очереди. Объект очереди python отлично работает. –

 Смежные вопросы

  • Нет связанных вопросов^_^