|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32632. Ответов 421
Метки вопросы наследования (Все метки)
начало было положено в ветке - Считать текстовые файлы из папки - там и возник вопрос об Архитектуре...
собрала... осталось отображение создать (типа I_tbl_Show) и пронаследовать ? в разные классы пункта назначения (или на консоль, или в файл, или в БД, или допустим ещё в форму)... N.B. классы (пункты-назначения) делать не надо - эти View уже реализованы разработчиками того ПО, на котором сейчас идёт работа... а) пока что можно просто прописать функции-члены класса; и по месту использовать, что надо при разработке - в файл или на консоль; б) в перспективе для Release - реализовать и откомпилировать и выгрузку и в файл, и выгрузку в БД, и отражение в DataGrid... === !! Т.Е. если в Release захочется и выгрузку в текст, и в БД, и допустим ещё в форму (например с разных кнопок сделать) - тут уж лучше и писать, как положено, наследование??... -- к слову из прошлой ветки о: === Обоснование выбора уровня Абстракции (I_tbl_Show со всеми виртуальными функциями): чтобы не дублировать код-сбора-для-выгрузки -- сделать class Table - и класс-интерфейс I_tbl_Show, в котором обозначить virtual-функции выгрузки... эти функции определить в др. классах - типа Interface (IwriteCSV, IwriteDB, IwriteDataGrid)... p.s. классы консоль, файл, бд, DataGrid - не создаём, т.к. эти пункты назначения уже присутствуют... p.p.s. вывести конечные интерфейсы с определёнными методами записи на кнопки... === ИЛИ то, что подчёркнуто чуть выше, стоит реализовать в одном классе Table, и здесь же задать все virtual функции ?? === на скрине: синие - классы, зелёные - интерфейсы (в с++ по сути тоже классы) птицами отмечены уже кое-как реализованные классы (2 птицы) курсивные стрелки - отсутствие наследования ![]() Добавлено через 7 минут вобщем вопрос: class Table и класс I_Tbl_Show - объединить или нет? Добавлено через 10 минут p.p.s. чтобы избежать проблем Ромба и такого: Неоднозначность при множественном наследовании
0
|
||||
| 11.03.2020, 10:51 | |
|
Ответы с готовыми решениями:
421
Проверка двух текстовиков
Сделать скрипт для вывода текстов из текстовиков |
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 27.05.2020, 22:35 [ТС] | |||
|
ок покручу... в смысле future для этого и имела ввиду...
и в принципе по пулу есть примеры: This is an example illustrating the use of the thread_pool object from the dlib C++ Library. In this example we will crate a thread pool with 3 threads and then show a few different ways to send tasks to the pool. Распараллеливание сортировки, thread pool ... тут главное понять (в моём тз), где mutex(es) включать, где выключать? Добавлено через 1 час 32 минуты Простой пул потоков
там же ответ:
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||
| 28.05.2020, 10:25 [ТС] | |||||||
Класс для очереди задач м. см. в теме: Реализовать пул потоков, в который можно помещать функцию Кликните здесь для просмотра всего текста
? там почему-то пустой public:
думала, уже здесь можно mutex задать?? Добавлено через 8 минут p.s. для погружения в тему: (pdf) C++ Concurrency in Action Добавлено через 2 часа 15 минут Синхронизация пула потоков
0
|
|||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 28.05.2020, 10:31 | ||
|
1
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||
| 28.05.2020, 17:43 [ТС] | ||||||
|
oleg-m1973, спасибо!, я хоть теперь в нужном направлении копаю - и уже что-то начинаю понимать...
1) кстати, встретилось, что 1 мьютекс на 1 элемент - очень жирно будет, обычно выделяют 1 мьютекс на 10 потоков, насколько поняла, т.е. на 10 элементов... 2) синхронизация что-то вроде... или здесь Кликните здесь для просмотра всего текста
3) убить поток сложно - делать этого не нужно - т.к. проблеиатично освободить ресурсы, позакрывать сокеты и выполнить др. рутину... даже если если поток остановить из др потока 3)хотя boost'овские потоки можно interrupt и они надёжнее, чем std 4) смысл потока - на очень дорогостоящих вычислениях можно получить результат, а поток завершиться уже после получения результата 5) если работа непродолжительна, то затраты на создание и уничтожение потоков могут повлиять на производительность в худшую сторону ... вобщем надо прикинуть - подгрузка из сети мелких текстовиков даже в большом количестве - до 3000 за раз - будет ли более выгодна... 6) и всё-таки потоки, наверно, лучше запускать по количеству ядер... иначе, наверно, задачи будут стоять в очереди на ядро 7) по работе с сокетами (а даже GET в С++ выполняется на открытом сокете - принимающем, - насколько понимаю) - всё равно на сокете может выполняться только 1 процесс -- поэтому неуверена, что параллельность поможет... хотя конкурентность моего тз - может и позволит распараллелить задачу подгрузки и задачу записи в файл... т.е. so named Instruction-Level Parallelism... не Data-Level Parallelism (8) исходя из (7) теперь понимаю, почему получала на Python (при использовании async-await) "Access Denied" - это от сокета... а я думала от того, что чужой сервер обычно позволяет 2-3 подключения с 1-го IP... имхо ...пока такие выводы...
0
|
||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 28.05.2020, 17:46 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 28.05.2020, 17:48 [ТС] | |
|
9) и в принципе и на cplusplus - есть пример класса (внизу)... хотя в яз. высокого уровня, повторюсь, можно и найти нужные классы... тот же boost... может только если установить отдельно boost_threadpool
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 28.05.2020, 17:49 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 28.05.2020, 17:49 [ТС] | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||||
| 28.05.2020, 17:53 | ||||||||
1
|
||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 28.05.2020, 17:55 [ТС] | |||
|
Добавлено через 1 минуту
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 28.05.2020, 18:01 | |||
|
Если ты блокируешь сразу 10 элементов, то эти элементы можно будет обрабатывать только последовательно, т.е. у тебя, грубо говоря, 10 потоков будут стоять и ждать своей очереди Добавлено через 1 минуту
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 28.05.2020, 18:03 [ТС] | ||
|
в 1к1 они (эти 10 например в целом) ведь всё равно, наверно, не смогут работать параллельно... а только по количеству ядер (например, у меня 2), а оставшиеся 8 из той же 10-ки - будут ждать очередь на ядроо... и затраты времени на lock/unlock при 1к1 всё равно могут превысить выигрыш от распараллеливания на 2 ядра... имхо
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||
| 28.05.2020, 18:08 | ||||
|
Добавлено через 1 минуту Добавлено через 28 секунд
1
|
||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 28.05.2020, 18:13 [ТС] | |
|
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 28.05.2020, 18:15 | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 28.05.2020, 18:31 [ТС] | ||
и с такой скоростью ... не подумает ли чего плохого (даже слово это боюсь произнести вслух - 2 слова - 2-ое "атака")
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 28.05.2020, 18:33 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 28.05.2020, 18:59 [ТС] | ||
|
- они ведь вроде взаимозаменяемы... или семафоры имеют какие-то плюса? Добавлено через 4 минуты сегодня кстати наталкивалась на семафоры - Simple thread pool... там по линку перейти... но вроде сейчас в тренде condition_variable ?
0
|
||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|||
| 28.05.2020, 19:03 | |||
|
Хотя, собственно, без разницы, как ты это ограничение реализуешь. Можно с помощью condition_variable, мьютекса и счётчика Добавлено через 2 минуты
1
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||
| 28.05.2020, 20:38 [ТС] | ||
|
lock - закрывает поток, чтобы он там в себе что-то выполнял, что в коде; потом unlock - открывает его для join с основным потоком и выводом, чего надо; есть ещё: yield - "говорит планировщику выполнять другие потоки, может использоваться при активном ожидании" (надо разобраться при случае)... ... но в thread_pool - этот yield лишний... т.к. сам pool, насколько понимаю, - очень активно ожидает, выполняя всё остальное в pool'e (все потоки, запущенные в работу)... вообще по количеству в queue - можно и такое количество thread'ов в pool'e открыть?.. циклом... потом также join'ить циклом, видимо?... имхо
0
|
||
| 28.05.2020, 20:38 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
|
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
|
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время?
Никакой пенсии. Никакого нового. . .
|
|
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю
Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы
Кратко. . .
|
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем
**Полевые заметки о двухнедельной совместной работе**. . .
|
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики
1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
|
Публикация отклонённая на хабре. Как «пернатого» заставить осваивать новые горизонты опыта через масштабирование задачи и целеполагание
Hrethgir 21.07.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11948&stc=1&d=1784657928
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|