Название: "Лишние" процессы Отправлено: U.B.M. от Октябрь 24, 2012, 10:24 Доброго времени суток.
Есть поток QMyThrd, который открывает COM-порт (больше поток ничего не делает) Код: int fd = open("/dev/ttyS0", ...); В main.cpp прописываю Код: QMyThrd *Thrd = new QMyThrd; далее набираю lsof /dev/ttyS0 - вижу что 3 процесса (у них всё одинаково, кроме PID разумеется - пиды n, n+1, n+2 - что тоже впринципе ожидаемо) работают с /dev/ttyS0. Если же я в main.cpp прописываю открытие порта без использования потока Код: int fd = open("/dev/ttyS0", ...); то lsof /dev/ttyS0 показывает, что только 1 процесс работает с /dev/ttyS0. Вопрос "почему так происходит?", а не какой-нибудь другой. P.S. Надеюсь, что правило "на чётко поставленный вопрос можно ожидать четкий ответ" в данном случае сработает :) Название: Re: "Лишние" процессы Отправлено: Bepec от Октябрь 24, 2012, 10:35 По моему разумению, у вас показывается
1 - GUI поток приложения(основной) 2 - поток QThread 3 - поток fileStream, или чем ты там открываешь. В принципе всё, ннэ? Название: Re: "Лишние" процессы Отправлено: U.B.M. от Октябрь 24, 2012, 12:34 По моему разумению, у вас показывается 1 - GUI поток приложения(основной) 2 - поток QThread 3 - поток fileStream, или чем ты там открываешь. В принципе всё, ннэ? Возможно, но если я поток не делаю, то 2-й пункт (QThread) пропадает, а 3-й ("или чем ты там открываешь") пункт должен как бы оставаться - я же открываю таки порт. :-\ P.S. Опять же повторюсь, вопрос задается ради расширения кругозора. Название: Re: "Лишние" процессы Отправлено: Bepec от Октябрь 24, 2012, 13:46 Дебагер в руки, контрольные точки в руки.
Точка - запуск программы, точка - создание потока, точка - запуск потока, точка - запуск общения с портом. И твоё расширение кругозора расширится :) |