Russian Qt Forum
Ноябрь 24, 2024, 13:54
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Слот/сигнал без явного источника
Страниц:
1
[
2
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Слот/сигнал без явного источника (Прочитано 7819 раз)
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Слот/сигнал без явного источника
«
Ответ #15 :
Декабрь 09, 2014, 15:31 »
Цитата: Igors от Декабрь 09, 2014, 14:33
Чтобы "закрепить ядро" за ниткой - надо сильно постараться, и, насколько помню, такая возможность есть только в unix
Не надо ничего закреплять, вы же не в реал-тайме. Система сама даст нити ядро, если есть возможность. Я специально проверял - гонял несколько QThread на 4-х ядерном процессоре, смотрел загрузку ядер. В вениках если есть свободное ядро, то новая нить запускается на нём. Прямо видно в таск-менеджере. Если есть 2 ядра и запускаются 2 нити, то они занимают эти 2 ядра. Если одна нить останавливается, то вторая продолжает работать на своём ядре. Думаю, в *nix точно также будет.
А если свободного ядра нет, то закреплять бесполезно - по идее, ядро дадут только в QNX, да и то там какие-то тонкости были.
Зато если ядро есть, а с современными многоядерными процессорами это вполне вероятно, то вычислитель в отдельной QThread получит целиком ядро, будет работать быстрее.
Записан
2^7-1 == 127, задумайтесь...
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Слот/сигнал без явного источника
«
Ответ #16 :
Декабрь 09, 2014, 16:01 »
Цитата: Гурман от Декабрь 09, 2014, 15:31
Не надо ничего закреплять, вы же не в реал-тайме. Система сама даст нити ядро, если есть возможность. Я специально проверял - гонял несколько QThread на 4-х ядерном процессоре, смотрел загрузку ядер. В вениках если есть свободное ядро, то новая нить запускается на нём. Прямо видно в таск-менеджере. Если есть 2 ядра и запускаются 2 нити, то они занимают эти 2 ядра. Если одна нить останавливается, то вторая продолжает работать на своём ядре. Думаю, в *nix точно также будет.
А если свободного ядра нет, то закреплять бесполезно - по идее, ядро дадут только в QNX, да и то там какие-то тонкости были.
Зато если ядро есть, а с современными многоядерными процессорами это вполне вероятно, то вычислитель в отдельной QThread получит целиком ядро, будет работать быстрее.
С этим никто не спорит. "Закрепить" имелось ввиду что данная нитка исполняется ТОЛЬКО на данном ядре (и ни каком другом). Это сделать непросто (да и не видно зачем). А в общем случае ОС перебрасывает нитку с одного ядра на другое как хочет.
Записан
Гурман
Гуру общения
Offline
Сообщений: 1442
Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12
Re: Слот/сигнал без явного источника
«
Ответ #17 :
Декабрь 09, 2014, 16:48 »
Цитата: Igors от Декабрь 09, 2014, 16:01
]С этим никто не спорит. "Закрепить" имелось ввиду что данная нитка исполняется ТОЛЬКО на данном ядре (и ни каком другом). Это сделать непросто (да и не видно зачем). А в общем случае ОС перебрасывает нитку с одного ядра на другое как хочет.
Ну и пусть себе перебрасывает. Нужно же было окно вовремя обновлять - чем не вовремя, когда считающая нить завершится? А на каком ядре, другое дело - если повезет, то на отдельном. Если затык был в том, что считающий код ничего про Qt знать не должен - ну и пусть не знает. Я в таком случае сделаю такой код в отдельной DLL, если считающий, так вообще с расширением .c, без ++, а в конструкторе некоего QObject эта считающая DLL будет вручную загружаться. Дальше тривиально...
Записан
2^7-1 == 127, задумайтесь...
Страниц:
1
[
2
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...