Перейти к содержанию
Fire Monkey от А до Я

Поиск сообщества

Показаны результаты для тегов 'многопоточность'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип контента


Форумы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума

Поиск результатов в...

Поиск контента, содержащего...


Дата создания

  • Начало

    Конец


Дата обновления

  • Начало

    Конец


Фильтр по количеству...

Регистрация

  • Начало

    Конец


Группа


AIM


MSN


Сайт


ICQ


Yahoo


Jabber


Skype


StackOverflow


Защита от ботов


Город


Интересы

Найдено: 1 результат

  1. Добрый день. Не знаю как правильно синхронизировать потоки. Выполняю математические расчеты. Нужно использовать все ядра процессора и после каждого полного прохода выводить результат на экран, после вывода на экран нужно сразу же начинать новый проход и тд. И при этом нужна максимальная производительность. Процедура распределения задачи на разное количество ядер есть. Но не получается совместить синхронизацию с максимальной производительностью. Сама задача - расчёт столкновений шариков в двумерном пространстве. Цель - макс количество кадров в секунду. Делал разными способами, но каждый раз получается не то, что нужно. Если в качестве синхронизации использовать TThread.OnTerminate, где по счетчику определять все ли потоки завершены и потом уже выводить на экран и создавать потоки заново, то получается очень медленно. 2 ядра дают 10% преимущества перед 1 ядром. Наверно потому что много времени уходит на создание потоков и ожидание выполнения всех. Если каждый поток выполнять бесконечным циклом, не давая ему завершиться и в конце итерации осуществлять вывод на экран, то получается максимально быстро но вместо одного вывода на экран число выводов равно числу потоков и невозможно правильно отследить частоту кадров. И получается рассинхронизация потоков. И много промежуточных вариантов пробовал тоже. Как правильно нужно организовать взаимодействия потоков, чтобы была максимальная производительность?
×
×
  • Создать...