Экспериментируя с многопотоковыми приложениями решил по ходу делать заметки, о чем нужно помнить, что принимать во внимание.
процессы стартуют не мгновенно, необходимо время для загрузки в память и начала выполнения
память используемая несколькими потоками/процессами должна быть ассоциирована с системой синхронизации
так как процессы/потоки существуют параллельно, кроме общих переменных необходимо так же учитывать синхронизацию по времени выполнения
для упрощения работы с процессами желательно не допускать выполнения процесса бесконечно долго. Желательно использование таймеров.
если все-таки процесс должен выполняться достаточно долго, необходимо учесть возможность в любой момент опроса состояния процесса
иногда полезно рассматривать процесс как черный ящик
на вход процесса подают задачи (tasks), на выходе получают результаты (results)
при отладке служебная информация, логи, отладочная информация должна быть доступна по запросу либо постоянно писаться в лог
желательно, чтобы логика процесса могла выполнять не только как процесс, но и как функция. Упрощается отладка
многопоточность = непредсказуемость
0 комментариев:
Отправить комментарий