Форкинг Гринлетс

Возможно, я упускаю что-то очевидное (и это пятница), но есть ли способ сделать эквивалент os.fork() на гринлете? Я не обязательно ищу ответвление процесса, я хочу взять гринлет и запустить один набор кода, затем другой, но с независимыми областями действия (как с os.fork()).

Есть идеи или мне просто поспать?

1 ответ

Решение

Чтобы концептуально разветвлять гринлет, просто создайте еще один гринлет, обертывающий вашу "дочернюю функцию". Я также очень рекомендую Gevent, который построен на Greenlet. В коде gevent есть метод fork(), но он разветвляет процесс Python и затем перезапускает gevent в дочернем элементе. Могу поспорить, что вы можете реализовать все, что вы делаете в gevent, с более читаемым кодом, чем просто greenlet.

Другие вопросы по тегам