Как понять что программа работает в двух потоках? |
Здравствуйте, гость ( Вход | Регистрация )
Как понять что программа работает в двух потоках? |
RazrFalcon |
4.10.2010, 14:31
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Есть простой пример из хелпа
.срр
.h
.pro
а вот вывод такой: ... 406010 406011 406012 406013 406014 406015 ... а по идее должен быть типа ... 406010 406010 406011 406011 406012 406012 ... PS: как присвоить приоритет Так не хочет (из хелпа) вот так После применения приоритетов 713245 726544 713246 726545 713247 726546 выходит один спешит? не пойму совсем "к слову скрин загрузки" PSS: можно ли выбрать ядро для выполнения функции? Сообщение отредактировал RazrFalcon - 4.10.2010, 15:01 |
|
|
RazrFalcon |
5.10.2010, 18:21
Сообщение
#2
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Еще парочку моментов.
1) Когда я создаю 2-а потока, то на самом деле их 3-и. 2) Я не выбираю ядра, то есть сама система выбирает. Она может их (потоки) поменять местами во время работы? 3) Когда прога работает основным потоком, а потом я создаю 2-й поток, то он помещается на свободное ядро (1-е, 2-е, 3-е и тд). 4) Как я понял с гуем и файлами лучше работать в один поток. Сообщение отредактировал RazrFalcon - 5.10.2010, 18:22 |
|
|
Sokoloff |
5.10.2010, 20:02
Сообщение
#3
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Еще парочку моментов. 1) Когда я создаю 2-а потока, то на самом деле их 3-и. 2) Я не выбираю ядра, то есть сама система выбирает. Она может их (потоки) поменять местами во время работы? 3) Когда прога работает основным потоком, а потом я создаю 2-й поток, то он помещается на свободное ядро (1-е, 2-е, 3-е и тд). 4) Как я понял с гуем и файлами лучше работать в один поток. 1) Да ты создаешь не 2-а потока а 2-а дополнительных потока. Ведь main тоже должен выполняться в потоке, поэтому у любой программы сразу есть один поток, это "основной поток". В нем отрисовываются/обновляются контролы. Замечал наверное, иногда окна программ становятся белыми, и программы не отвечают на нажатия кнопок и мыши, это когда основной поток чем то сильно занят и не успевает обработать GUI. 2) Ядра ты не выбираешь, система сама лучше знает как разместить задачи. Ведь в системе кроме твоей программы еще куча всего крутиться, и другие программы то-же хотят поработать, так что это задача системы оптимально раскидать задачи по ядрам. 3) Скорее всего да. Хотя на 100% гарантировать нельзя, смотри п.2 про чужие программы. 4) С гуем лучше работать не просто в один поток а в основном потоке. А что значит с файлами? Простая ситуация если одновременно надо обрабатывать несколько файлов - можно каждый файл обрабатывать в отдельном потоке. Но надо помнить о синхронизации между потоками. Гораздо более сложная ситуация если надо обрабатывать один большой файл, если работу можно разбить на одновременные подзадачи, то можно обрабатывать части файла в несколько потоков. Но это гораздо сложнее с точки зрения синхронизации. В общем делать потоки, или нет, и сколько зависит от задачи. P.S. Какие у тебя разнообразные интересы и GUI/CLI, и библиотеки, и время выполнения, и потоки. Ты просто изучаешь разные вещи или что-то реальное пишешь, во втором случае IMHO что-то ты с дизайном программы мудришь, возможно твою задачу можно решить проще. Опиши задачу, тебе подскажут куда копать. |
|
|
RazrFalcon |
5.10.2010, 22:34
Сообщение
#4
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
А что значит с файлами? Да я про обычный текстовик думал. Ну а в принципе все как я и думал.P.S. Какие у тебя разнообразные интересы и GUI/CLI, и библиотеки, и время выполнения, и потоки. Ты просто изучаешь разные вещи или что-то реальное пишешь, во втором случае IMHO что-то ты с дизайном программы мудришь, возможно твою задачу можно решить проще. Опиши задачу, тебе подскажут куда копать. оффтоп В общем я мучать начал openCV. А потом пошло. Интерфейс не нужен в общем - значит надо с консолькой разобраться, ну или лубу написать а потом подключать к гую. Потом понял что виснет безбожно - распараллеливание. Потом надо понять на сколько мои усилия сделали ее более быстрой - вот и время понадобилось. А в общем я просто решил поучится разному. Дизайнер из меня никудышный, вот и мучаю всякое. Начал OGRE и bullet physics учить, понял что многого не знаю, а они без оптимизации вообще деревянные и на моем ноуте не первой свежести вообще еле идут. Вот и решил основам оптимизации поучится. Помочь мне нечем, просто сталкиваюсь с проблемой и пытаюсь решить походу. |
|
|
Sokoloff |
5.10.2010, 23:26
Сообщение
#5
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
А что значит с файлами? Да я про обычный текстовик думал. Ну а в принципе все как я и думал.Если обычный текстовик и размер не большой, то не парься читай в основном потоке, никто задержки не заметит. Про OpenCV подсказать не смогу, не сталкивался. Про GUI/CLI ответил в другом треде. |
|
|
Текстовая версия | Сейчас: 14.1.2025, 21:32 |