![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Snake_B |
![]()
Сообщение
#1
|
Пионер ![]() ![]() Группа: Пользователи Сообщений: 72 Пол: Мужской Репутация: ![]() ![]() ![]() |
проведите кто-нибудь ликбез по потокам ))
такие вот вопросы... есть у меня в программе функции обработки картинок... если их вынести в отдельные потоки, будут ли задействованны вторые там ядра у новых процессоров? (под делфи 2005) |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Это в идеале, так то ты и на одноядерном можешь сколько хочешь потоков создать А теперь - внимание, вопрос: А сколько это - в пределах разумного? ![]() Теперь по теме: Цитата по хорошему получается надо определять индивидуально сколько этих самых По хорошему - получается, что ПРОСТО ТАК создавать ничего не надо, тем более на одноядернике. Увеличить скорость не получится однозначно, скорость только уменьшится, зачем тебе проблемы? Определяй количество ядер/процессоров на машине (если что - можно прочесть системную переменную NUMBER_OF_PROCESSORS), и создавай поток(-и), обрабатывающие информацию только если это число больше 1. Больше конкретики, если можно, что за потоки, какую задачу выполняют? Чего ты вдруг решил что-то выносить в отдельный поток?"число ядер * количество процессоров" есть и столько потоков создавать... так? Цитата сейчас ещё есть отправка отчетов всяких на e-mail... программа во время отправки зависает... Программа зависает по какой причине? Потому что долго выполняется и потом, когда отправится - все-же "отвисает"? Или зависло, и с концами? Если "отвисает" - то выноси в отдельный поток. Цитата но если сделать в потоке, я же его остановить не смогу если что? или смогу? Если "что"? Поток должен сам знать, когда ему завершиться, а когда - нет. Когда завершится - тогда и завершится. Если правильно напишешь Execute - будет работать правильно. Откуда ты собрался "если что" его останавливать?Добавлено через 1 мин. Цитата Попробуй int64.. Не надо... Опять нарушаем сигнатуру функции?Цитата DWORD WINAPI GetTickCount(void); |
![]() ![]() |
![]() |
Текстовая версия | 15.07.2025 1:05 |