Обсуждение статьи "Моделирование рынка (Часть 13): Сокеты (VII)"

 

Опубликована статья Моделирование рынка (Часть 13): Сокеты (VII):

Когда мы разрабатываем что-то в xlwings или в любом другом пакете, позволяющем читать и писать непосредственно в Excel, мы должны заметить, что все программы, функции или процедуры выполняются, а затем завершают свою задачу. Они не остаются в цикле, и неважно, как сильно мы стараемся сделать всё по-другому.

В предыдущей статье, "Моделирование рынка (Часть 12): Сокеты (VI)", мы создали сервер Python, способный отвечать нескольким клиентам. Он работал благодаря использованию потоков. Я думаю, что основная идея функционирования потоков ясна. Но прежде всего, я надеюсь, что вам удалось понять, как серверу удается в некотором роде заставить работать небольшой чат. Цель данных пояснений к сокетами не в том, чтобы рассказать о них всё. Мы хотим, чтобы вы поняли, как работают сокеты. Эти знания понадобятся позже в системе репликации/моделирования.

Однако, хотя сервер Python работает так, что его могут использовать несколько клиентов, он не предназначен для использования в Excel. То есть, если мы используем xlwings для интеграции этого сервера в Excel, у вас возникнут проблемы с взаимодействием с Excel. Но зачем, если мы используем потоки, чтобы не блокировать выполнение кода?

Это несколько сложный вопрос. По крайней мере, для тех, кто не очень хорошо разбирается в том, как программа использует другую программу, которая не является её частью. Возможно, это предложение было немного запутанным, но давайте постараемся его понять. Когда мы используем скрипт VBA внутри Excel, мы фактически запускаем программу. Если этот скрипт вызывает другое приложение, Excel обычно ждет, пока оно завершит работу. Но это не всегда так. Чтобы Excel не приходилось ждать завершения работы приложения, можно использовать приложение, которое не связано с Excel. То есть у нас будет открыт Excel и одновременно другое приложение для работы с VBA. Оба могут сосуществовать без конкуренции за процессор. Это примерно то же самое, что попросить Excel открыть Word. Неважно, если Word зависнет, это не помешает работе Excel.


Автор: Daniel Jose

 
Спасибо