Я делаю генетическую программу, и у меня есть проблема. Похоже, что он попытается вычислить большие экспоненты, но замерзнет (что понятно, потому что это большое количество) в этом процессе. Есть ли способ выполнить казнь? Таким образом, я мог бы остановить вычисление, прежде чем он замерзнет в течение нескольких минут. Спасибо за помощь!Eval() замораживание для больших экспонентов
0
A
ответ
0
Как правило, вы действительно не хотите делать то, что вы просите. (На самом деле там есть более одного красного флага). Но если вы это сделаете:
Единственный способ, с помощью которого вы можете позволить что-то запустить, а также время - это поместить его в отдельный поток или процесс.
Если вы хотите, чтобы иметь возможность принудительно прервать что-то, это должен быть процесс.
Так, например:
import multiprocessing
def try_slow_thing(function, args, timeout):
p = multiprocessing.Process(target=function, args=args)
p.start()
p.join(timeout)
if p.is_alive():
p.terminate()
raise TimeoutError("stupid process wouldn't finish")
Если вы хотите, чтобы вернуть значение из функции, или стоимости акций от основного процесса, или что-нибудь еще более причудливой, чем просто «запустить и закончить или нет », прочитайте вступительные части документов multiprocessing
и просмотрите остальные. (На самом деле, все равно.)
Смежные вопросы
- 1. Селен Замораживание на больших страницах
- 2. Функция matrix_power Numpy дает неправильные результаты для больших экспонентов
- 3. Замораживание во время потока больших файлов
- 4. Эффективность рекурсии против итерации для экспонентов
- 5. Как анализировать полином для экспонентов
- 6. Оптимизация Python чтения больших файлов с eval
- 7. Включая экспонентов в jQuery?
- 8. Поведение разных экспонентов для разных версий ruby
- 9. Мощность, возведенная в квадрат для отрицательных экспонентов
- 10. NASM, макро или подпрограмма для экспонентов?
- 11. Использование экспонентов для поддержания постоянного коэффициента?
- 12. Использование экспонентов с десятичными знаками
- 13. Math.pow - с использованием дробных экспонентов
- 14. Партийные пары чисел или экспонентов
- 15. Сумма экспонентов с одинаковым основанием
- 16. Удаление экспонентов из RMD-вывода
- 17. Замораживание игры
- 18. Высокие номера экспонентов с функциями scipy.stats
- 19. Как получить ответ на вопросы экспонентов
- 20. Блокировка/замораживание таблицы таблицы в ListView
- 21. Использование экспонентов в вычислениях Гравитационных форм
- 22. Eval разбора для JSON
- 23. Некорректное возможности для Eval
- 24. eval для импорта модуля
- 25. Функция мощности для реального базового и реального экспонентов
- 26. Regex для не десятичного целого числа с учетом экспонентов
- 27. C++ Вложенный цикл цикла для экспонентов с заданной базой/экспонентом
- 28. подходит для eval для javascript?
- 29. Получение списка пар коэффициентов/экспонентов в sympy
- 30. Преобразование числа экспонентов в номер nnnumber
У меня есть отличная идея: не используйте 'eval' !! – aIKid
[Threads] (http://www.ibm.com/developerworks/aix/library/au-threadingpython/) для тяжелой вычислительной работы. – clcto
'eval' - это плохой материал. Также вам нужно показать нам код, чтобы узнать, что с ним не так. – aIKid