Найти - Пользователи
Полная версия: Несколько камер одновременно.Потоки
Начало » Python для новичков » Несколько камер одновременно.Потоки
1
marfusha
Доброго времени суток!

Есть задача “общаться” с несколькими IPкамерами одновременно.
Что-то вроде охранной системы. Пробую реализовать при помощи потоков(threading). Есть поток для работы с камерой(запускается n раз - сколько камер), поток для передачи в БД и поток для передачи файлов на сервер(FTP) + основной(инициализация глобальных переменных и запуск потоков).
Подскажите, как реализовать корректную работу программы?Как можно синхронизировать потоки,чтоб они давали друг другу работать? Т.к. если запускать “в лоб”, получается полная дребедень. Могут ли помочь задержки time.sleep()? Можно ли программно передавать/забирать управление потокам?
Что делать, если один из потоков зависает?

Дурацкий вопрос: GIL работает всегда, или его включать нужно?

Прошу прощения, в потоках разбираюсь плохо. Знаю только, что в один момент работает только 1 поток и что GIL переключает потоки через каждые 100 инструкций(и учитывая приоритеты, управление может передаваться одному и тому же потоку)

Надеюсь, смогла выразить мысль…
Заранее спасибо.

Python 2.6+WinXP+OpenCv
Soteric
Не стоит беспокоиться о GIL, о том что потоки не будут давать друг другу работать, о том чтобы у кого-то забирать управление и куда-то отдавать. Питон справится с этим сам. Создайте поток (или потоки), который будет опрашивать камеры. Результаты пусть складываются в очередь (класс Queue). Поток общающийся с базой будет читать результаты из очереди и отправлять в базу. Если получается “дребедень”, постите код и показывайте ошибки.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB