|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
Архитектура: парсинг и выгрузка текстовиков11.03.2020, 10:51. Показов 32612. Ответов 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
Проверка двух текстовиков
Сделать скрипт для вывода текстов из текстовиков |
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 03.06.2020, 10:41 | ||
|
0
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 03.06.2020, 18:28 [ТС] | |||
а задачи (очередь задач)? работающие асинхронно ? - в многопоточном приложении ? на компе с одним ядром...- это ведь и есть конкурентность... vs. параллелизм - на несколько ядер... хотя если породить потоков больше, чем ядер(-1, т.к. 1 для главного потока) - то и потоки встанут в очередь... p.s. хотя если бывают такие процессы, которые параллелятся не через ядра (мало ли какой сигнал с какого датчика на какой дивайс?)... то и в очередь становИться некуда будет... но семафором (как счётчиком ресурсов) - контролировать можно будет... пока так понимаю... Добавлено через 5 минут
0
|
|||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 03.06.2020, 18:37 | |
|
JeyCi, смотрите на уровень абстракции.
Для компьютера с одним ядром истинного параллелизма нет. Но он (параллелизм) есть для прикладной программы, которая сделала себе, например, два потока. На ее уровне у нее есть параллелизм этих потоков, если они (в абстракциях этой программы) не конкурируют за ресурсы.
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 03.06.2020, 19:32 [ТС] | |||
вот теперь поняла, что в c++ значит потоки: когда висит GUI, работает main, на стороне какое выбрасывание в log идёт... или парсинг текстовиков, пока GUI музыку проигрывает... ![]() Добавлено через 13 минут значит так и параллелить... чтобы сильно часто синхронизировать (блокировать) не приходилось... а если нет общих ресурсов - то и блокировать нечего... фантастика: всё гениальное - просто... IO - это когда процесс/поток сначала consume data, потом produce result... а когда он потом consume то, что он дал result'ом - это уже deadlock...
0
|
|||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||||
| 04.06.2020, 11:33 [ТС] | |||||||||
![]() что такое неделимая операция семафора
на ru_stackoverflow_com /questions/511595/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BD%D0%B5%D0%B4%D0%B5%D0%BB%D0%B8%D0% BC%D0%B0%D1%8F-%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0% B8%D1%8F-%D1%81%D0%B5%D0%BC%D0%B0%D1%84%D0%BE%D1% 80%D0%B0"
=== вот пример работающего семафора с riptutorial... Кликните здесь для просмотра всего текста
- и что интересно - работают и работают... и работают... без цикла в коде, и main() исполняется постоянно - мы join'им потоки к главному потоку (чтобы пропечатать в консоль)... и они продолжают работать? (без цикла)... наверно, пока процесс (т.е. само приложение от main'a) не остановим (закроем/выйдем) ?.. деструктора в классе под спойлером нет... - а как сделать здесь непонятно... хотя в std есть sem_destroy... но надо потестить (в др коде)... в коде под спойлером нет... здесь отметили
Кликните здесь для просмотра всего текста
In C/C++ the volatile keyword was intended to:
● allow access to memory mapped devices ● allow uses of variables between setjmp and longjmp ● allow uses of sig_atomic_t variables in signal handlers. Useful side effects: ● compiler can’t optimize out volatile access ● compiler can’t reorder volatile access relative to some other special access (e.g. another volatile access). Disadvantages: ● operations on volatile variables are not atomic ● compiler may reorder volatile access relative to regular variable access ● CPU may reorder volatile access relative to any other access (e.g. another volatile access). == цель этого поста - аргумент важности использования имеющихся библиотек, а не учебных примеров... в то же время, наметить кривую знакомства с потоками
0
|
|||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 04.06.2020, 16:01 [ТС] | |
|
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 04.06.2020, 17:57 [ТС] | |
|
p.s.
What exactly is std::atomic
stackoverflow_com /questions/31978324/what-exactly-is-stdatomic
про load(), store() & memory order , который появился с C++v.11 Добавлено через 9 минут Concurrency in C++11 (часть про Condition_Variables - в принципе их суть примерно, как и у семафора, - только появились они в Win7, на более ранних windows не работают вроде) Добавлено через 1 час 32 минуты ============== вобщем, читать manual и IEEE Std - The Open Group Base Specifications Issue
0
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 04.06.2020, 17:59 | |
|
JeyCi, возможно вам будет интересно:
http://scrutator.me/post/2012/... ld-p1.aspx http://scrutator.me/post/2012/... ld-p2.aspx http://scrutator.me/post/2012/... ld-p3.aspx
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
| 04.06.2020, 18:28 [ТС] | ||||
|
=====
и ответ
stackoverflow_com /questions/9660119/giving-an-id-to-semaphore
- в ключ - адрес семафора, в значение - линк... Но ведь так можно и просто мьютексами справиться... один мьютекс на один линк... Или каким макаром привязать семафор к конкретному сайту (все линки с одного сайта)... - ? надо сделать 1 семафор и все threads (с каждого линка) направлять на этот семафор?.. (если сделать его принимающим до 10 потоков, например)... тогда зачем std::map?.. sorry за кучу вопросов - но это наверно последний - чтобы сориентироваться для share_resources correctly... остальное буду искать в сети и на форуме Добавлено через 2 минуты === DrOffset, обязательно ознакомлюсь! спасибо!
0
|
||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||||||
| 04.06.2020, 18:40 | ||||||||||
Добавлено через 58 секунд Добавлено через 55 секунд
1
|
||||||||||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||
| 04.06.2020, 20:23 [ТС] | ||||
|
и el.second (item) у всех будет одинаковый, если семафор один... смысл такого словаря?
0
|
||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 04.06.2020, 20:25 | |
|
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
||||||||
| 04.06.2020, 20:48 [ТС] | ||||||||
|
p.s.
опять я поток на элемент примеряю, а ведь, действительно, может и несколько потоков на линк... всё время 1к1 равняю -- спасибо, что не устаёте править...Добавлено через 16 минут m_tasks и m_pool was not declared in this scope -- и действительно, по коду не вижу декларацию ![]() и почему-то
-- эту ошибку уж совсем не понимаю ( даже если using namespace std; ) и ещё несколько
0
|
||||||||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 04.06.2020, 20:51 | |
|
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 04.06.2020, 21:10 [ТС] | |
|
error: 'bind' is not a member of 'std'
? что-то в include тоже нет
0
|
|
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
| 04.06.2020, 21:12 | |
|
1
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|
| 04.06.2020, 21:19 [ТС] | |
|
спасибо
запустила - но я взяла только сам классCTaskRunner и пример CThreadPool...буду примерять
0
|
|
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||
| 05.06.2020, 09:17 [ТС] | |||
|
ВЫВОД по многопоточности:
не путать понятия "данные" и "потоки"! P.S. оборачивать (если ещё не обёрнуто используемым классом) атомарные операции в <atomic>
0
|
|||
|
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
|
||
| 05.06.2020, 10:57 | ||
|
2
|
||
|
264 / 153 / 33
Регистрация: 29.06.2019
Сообщений: 1,549
|
|||||||
| 05.06.2020, 19:59 [ТС] | |||||||
в header'e <future>: // Disable copying ? т.е. неужели мы элементы вектора фьючей не сможем использовать в лямбде, например, функции std::accumulate ? (вероятно, функтор называется лямбда здесь)
0
|
|||||||
| 05.06.2020, 19:59 | |
|
В указанном dsn архитектура драйвера и архитектура приложения не соответствуют друг другу архитектура процессоров и компьютерная архитектура,Intel32. для первокурсников Ошибка "в указанном dsn архитектура драйвера и архитектура приложения" Архитектура бд Архитектура БД Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Теория всего 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
Привет Хабр. В этой статье я расскажу, как один закон эпистемологии позволил мне с ходу запустить уникальный. . .
|
Теория всего 11. Основные параметры
anaschu 21.07.2026
Дешифровка тензорного ядра Soil Chemistry 2. 0: Истинный инвариант Теории Всего
Чистовой исходный код многокомпонентной сукцессии зафиксирован. Модель оперирует единым вектором состояния. . .
|
Теория всего 10. Клод трусишка
anaschu 21.07.2026
Алгоритмический суицид ИИ: Когда математика ОДУ взламывает цензурные шлюзы
Свежайший мета-прецедент нашей разработки! Клод официально отказался строить итоговую кроссплатформенную модель, как. . .
|
|
Теория всего 9. Окончательная проработка метафоры "дерево = традиции"
anaschu 21.07.2026
Скрытые параметры ядра ОДУ: Механика Глубинного Рока
Клод утаил от вас ключевую математику кризисов. В движке игры зашиты пять скрытых коэффициентов, определяющих, как именно ТНК и Мемы ломают. . .
|
Теория всего 8. Clauude трусишка. Ответ джемени
anaschu 21.07.2026
Игровой баланс «Модели Всего»: Алгоритмический блок как механика Семантического БуфераЭтот скриншот отказа Клода — идеальный, чистейший прецедент для нашей Теории Всего. Вы столкнулись не просто с. . .
|
Теория всего 7. Дерево - это патриархат, грибы - это феминизм
anaschu 21.07.2026
Уничтожение Патриархата: Как ТНК, Мемы и Половой отбор зачистили «Сексуальный Пролетариат»
Величайшая иллюзия современного человека — вера в «свободу воли», «социальный прогресс» и «эволюцию. . .
|
История и социология Терры на примере борьбы микориз за пространство. 1. Глоссарий терры.
anaschu 21.07.2026
Решил тут подумать о возможности сделать лор некоторой комп игры - стратегии, или худжественной книги антиутопии, которые будут юзать планету,которая максимально будет похожа на нашу землю, но где. . .
|