|
57 / 52 / 5
Регистрация: 18.11.2018
Сообщений: 295
|
|||||||||||
Delphi 6-7 Выполнение задачи в нескольких потоках, основные принципы, синхронизация09.02.2022, 18:58. Показов 2087. Ответов 33
Тему создал чтобы не флудить в соседней.
Собственно тестовый проект. Пока интересует вопрос связанный конкретно с вызовом этого кода из потока :
0
|
|||||||||||
| 09.02.2022, 18:58 | |
|
Ответы с готовыми решениями:
33
Чтение и выполнение задачи в разных потоках основные комбинатроные принципы Основные принципы среды С |
|
|
|
| 10.02.2022, 16:26 | |
|
нормально коррелирует
запись есть некий размеченный кусок памяти, для которого компилятор держит таблицу смещений и размеров для каждого имени поля при этом не зря же указано ключевое слово PACKED! потому что если б его не было, то все поля отравнялись бы по УДОБНОМУ размеру именно, чтобы доступ к памяти был прямой пишем из регистра по такому-то адресу весь регистр и все... а для работы с PACKED процессор выполняет гораздо больше работы - взять 64 бита памяти по адресу XXX узнать, где там этот байт в этих битах заполнить по маске ТОЛЬКО его биты положить все на место Добавлено через 1 минуту при описании переменной никаких PACKED не предусмотрено, поэтому они все равно по факту занимают больше места чем byte
0
|
|
|
Житель Земли
|
|||||||
| 10.02.2022, 17:55 | |||||||
|
хз, у меня было одинаково
Добавлено через 6 минут в общем, запарился я с тестом, неправильно тестировал. Добавлено через 3 минуты
0
|
|||||||
| 10.02.2022, 18:56 | |
|
0
|
|
|
Модератор
4153 / 2362 / 814
Регистрация: 15.11.2015
Сообщений: 9,495
|
||
| 10.02.2022, 19:07 | ||
|
0
|
||
|
57 / 52 / 5
Регистрация: 18.11.2018
Сообщений: 295
|
|
| 10.02.2022, 19:39 [ТС] | |
|
Constcat,
Сделал немного замеров 1 поток 28,7-29,12 сек 10 потоков 3,3-3,6 сек; ускорение 8 раз 20 потоков 2,4-2,55 сек; ускорение 11,41 раз когда они исполняют по 2 потока на ядро, по факту максимальная нагрузка на ядра 30 потоков 2,2-2.72 сек; 40 потоков 2,42 сек; -1 прогон 80 потоков 2,40 сек; -1 прогон
0
|
|
|
Житель Земли
|
|
| 10.02.2022, 19:47 | |
|
Не по теме: Constcat, не совсем так.. или совсем не так. Это класс реализует интерфейс, то бишь "имплементирует" его {интерфейса} методы, являющиеся всегда виртуальными и абстрактными и класс может реализовать несколько интерфейсов, "объединяя" их. Но не наоборот. Добавлено через 2 минуты Не по теме: да, несколько классов может реализовать один интерфейс, однако состав методов у них будет одинаков. Разной может быть только реализация
0
|
|
| 10.02.2022, 20:39 | ||
|
Не по теме:
Я это о чем. Допустим, у меня есть некий класс, порожденный от TEdit. И некий класс, порожденный от TLabel. Допустим, объекты этого класса хотелось бы объединить в некий массив или список. И чтобы можно было бы вызвать некий общий для этих объектов метод, обращаясь к элементу массива/списка. Ну, как если бы у нас был общий базовый класс для этих двух классов с виртуальным методом. Например, некий SetText(sText: String), по которому объект TEdit будет изменять свое свойство Text, а объект TLabel - Caption. И как раз при помощи интерфейсов эту задачу может решить.
0
|
||
|
Житель Земли
|
|
| 10.02.2022, 21:54 | |
|
Не по теме: да, идея привлекательная. Только вот у меня фокус со списком интерфейсов не удался. Значит, нужен список объектов. И тут встает задача приведения двух разных классов к одному знаменателю с поддежкой кастомного интерфейса. Хорошая темка для домашней работы) Добавлено через 18 минут Не по теме: хм, я таки решил задачку ) Для этого потребовалось ввести класс-холдер, являющийся элементом списка
0
|
|
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
|||||||
| 11.02.2022, 00:27 | |||||||
|
Да, с TObjectList ничего не выйдет, потому что TObject не совместим с Interface. C TList проще, но он хочет Pointer, нужно двойное преобразование. А вот с массивом все чисто и гладко.
0
|
|||||||
|
Житель Земли
|
|||||||||||
| 11.02.2022, 11:11 | |||||||||||
|
Мой вариант без преобразований
интерфейсы
прога
0
|
|||||||||||
|
242 / 208 / 36
Регистрация: 19.02.2021
Сообщений: 1,431
|
||||||||||||
| 11.02.2022, 11:29 | ||||||||||||
|
Но можно и без холдера.
0
|
||||||||||||
| 11.02.2022, 11:29 | |
|
Основные принципы Squid! Основные принципы WCF Основные принципы создания грида Задание основные принципы ООП Основные принципы создания плагинов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|