У меня есть класс с интерфейсом Python для большой библиотеки C ++, которая мне помогает (с большими объемами данных).Я могу изящно остановить работника, отправив ему сигнал, т.е. os.kill( pid,signal.SIGINT )
.Итак, я подумал, что смогу запустить работника в p = Process(target=worker.run() )
- который работает - затем в произвольное время прервать работника, отправив ему сигнал - что работает хорошо - но:
Я не могувернуть состояние рабочего!Существует несколько экспортированных функций, которые должны дать мне информацию о том, что делал работник, но (очевидно, после вызова p.join()
), все эти функции возвращают исходные значения.Зачем?(Рабочий действительно сделал свою работу, которую я вижу в созданном выходном файле, но я не получаю там информацию, которую я бы хотел во время работы ...)
Использование очереди или диспетчера из многопроцессорной обработки, кажется, не вариант, так как объект на самом деле не «замаскирован», и я не хотел бы копировать все, если мне просто нужно состояние определенной переменной в рабочем,(Я совсем не уверен, что хорошо разбираюсь в этой маринованной концепции ...)
Заранее благодарен за любые предложения!