Возможно, там ещё проблемы с отведением памяти. Поток сам по себе ничего не делает,
только в методе run по команде start запускается на исполнение экземпляр класса Camera
для обработки, а после выхода из run он уничтожается. У моего предшественника он
и создавался в run и при выходе удалялся и он и сам поток. Я обнаружил, что в клиенте это
часто приводит к зависанию клиентской программы при попытке дать ей другой видеопоток
или при закрытии и даже к зависанию системы. Тогда я по возможности не стал удалять
экземпляр потока, а объект типа Camera стал создавать отдельной командой до старта
потока. Тогда клиент стал работать устойчиво, тормозных явлений в вышеописанном виде
тоже не было.
Это в Ubuntu, но когда я стал запускать сервер в ALTLinux, а клиент остался в Ubuntu,
в нём снова стали происходить сбои. Сейчас обе программы в ALTLinux.
Сегодня я для эксперимента попробовал вернуться к варианту, когда объект Camera
создаётся в методе run. Запустил клиент, когда сервер был готов отдавать ему два потока.
Тормозных явлений почти не было, на клиенте обе картинки отображались синхронно, было
только отставание на 1-2 секунды от картинки на сервере. А когда я на сервере добавил
клиенту 3-й поток, опять пошли задержки на десятки секунд, причём чем больше номер потока
на клиенте, тем больше задержка. А при отключении потоков зависла и клиентская программа
и система, в которой он была запущен, не реагировала даже на АAlt+SysRq+b.
Вот ещё здесь я задал этот вопрос.
http://linuxforum.ru/viewtopic.php?id=25423