Python. Как завершить выполнение exec() через заданное время?
Здрасте! Хочу сделать на питоне код для автопроверки работы программы. Допустим у меня есть код, который я запускаю через exec(). Как я могу сделать, чтобы по прошествии 1 секунды программа закачивала его выполнение и выводила Time limit exceeded?
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Примерно так можно сделать:
- создать отдельный процесс, который будет выполнять
exec - подождать секунду и, если процесс с
execещё не завершился, прекратить его
from multiprocessing import Process
from time import sleep
def run_exec():
print('запуск процесса')
exec('sleep(3)')
print('процесс завершен')
if __name__ == '__main__':
t = Process(target=run_exec)
t.start()
sleep(2)
if t.is_alive():
t.terminate()
print('процесс прерван')
Можете поиграться со значениями sleep в основном коде и в процессе, чтобы убедиться, что всё работает - либо процесс успевает отработать за определённое время, либо он принудительно прекращается.