Russian Qt Forum
Ноябрь 22, 2024, 11:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 7 8 [9] 10 11 ... 17   Вниз
  Печать  
Автор Тема: Igors, это ты? :)  (Прочитано 132089 раз)
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #120 : Сентябрь 04, 2018, 18:51 »

Кстати _Bers спалился что не опускался на уровень еполла и не писал сервак решающий "проблему 10к" Подмигивающий

Авварон в курсе, как устроен епулл изнутри?
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #121 : Сентябрь 04, 2018, 18:53 »

которые реализуются за счет многопоточки. Карл.

Эээээ, нет.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #122 : Сентябрь 04, 2018, 18:57 »


самолеты нужны, что бы летать.
у них у всех одинаковая задача.

Но кутред - это шаттл. То что что у него есть крылья (слово тред в названии) не делает его самолетом. Это вы хотите на шаттле в нью-йорк летать, а он нужен чтобы в космос.

с std::thread всякие кутешные сокеты начнут лагать.

Правильно, потому для нормальной работы сокетов нужен epoll


а что там было в бородатых - не суть важно.

Вообще-то важно. Вас пошлют на три буквы (перестанут юзать ваш фреймворк) те, кому вы сломаете код, убрав run из треда.

та же ася например, не выносит моск своим эвентлупом.
он вообще упрятан так, что простому смертному о нем даже знать не обязательно.

Ну да, лапшичный код из лямд горааздо лучше эвентлупа.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #123 : Сентябрь 04, 2018, 18:58 »

Кстати _Bers спалился что не опускался на уровень еполла и не писал сервак решающий "проблему 10к" Подмигивающий

Авварон в курсе, как устроен епулл изнутри?

Да, поток засыпает на системном вызове, передавая управление ядру.
В ядре происходит событие о сокете, тред пробуждает ядро.
Тут стоит добавить, что планировщик скорее всего догадывается, что тред, спящий на епулле не надо будить.

А вы думали там внутри эвентлуп в юзерспейсе как в азио? Ооок.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #124 : Сентябрь 04, 2018, 19:12 »

Можете взять мое, или просто печатать в консоль.
просто печать в консоль см. выше.

В Qt для этого есть удобный механизм, а в std - ни кола, ни двора.
ещё std не умеет окошки рисовать.
вы вообще осознаете, что  и с чем сравниваете?

Наоборот, std-шный стиль запуска выглядит "каменным веком" - обязует заботиться обо всем самому.

да все тоже самое практически.
только сигналы не нужны.
пихай коллбек, который будет отрисовывать прогресс.
вернет фальш - копирование завершиться.

вот такой дизайн вымораживает:
Код:
fc->moveToThread(&mThread);

перевожу на русский: "сношай меня в отдельном треде"
вот сколько всяких моделей (винапи, сдл, позикс, etc)
до такого бреда только кутя додумалась.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #125 : Сентябрь 04, 2018, 19:14 »

которые реализуются за счет многопоточки. Карл.

Эээээ, нет.

а ещё земля плоская, Карл.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #126 : Сентябрь 04, 2018, 19:24 »

Но кутред - это шаттл. То что что у него есть крылья (слово тред в названии) не делает его самолетом. Это вы хотите на шаттле в нью-йорк летать, а он нужен чтобы в космос.

нет. шаттл. это шаттл. а тред - это тред. если тред называют тредом, значит он должен вести себя как тред.
моральные люди не называют шаттл самолетом, что бы потом возвражать: "но это же не самолет, это шаттл"


Правильно, потому для нормальной работы сокетов нужен epoll
глубоко фиолетовый фактор.

даже на голом винапи не нужно заморачиваться на таких деталях.
даже на голимой куте не нужно об этом думать.
даже с её унылыми тредами.


а что там было в бородатых - не суть важно.


Вообще-то важно. Вас пошлют на три буквы (перестанут юзать ваш фреймворк) те, кому вы сломаете код, убрав run из треда.

я и не предлагал убирать этот костыль.
я предложил, что бы сокеты бегали в любых тредах,
хоть на winapi его создай.
без необходимости крутить там эвентлуп в ручную.

и не нужно загонять туфту про всякие епулы
пример годного дизайна - ася.
там вообще ни про какой эвентлуп ничего знать не нужно.


Ну да, лапшичный код из лямд горааздо лучше эвентлупа.

лапшичный код из коллбеков - типичное,
широко распространенное явление.
в вашей горячо любимой куте занимает центральную тему.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #127 : Сентябрь 04, 2018, 19:26 »

Да, поток засыпает на системном вызове, передавая управление ядру.
и о боже, это и есть многопоточка, Карл!

А вы думали там внутри эвентлуп в юзерспейсе как в азио? Ооок.
сам придумал - сам ответил. сам оокнул.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #128 : Сентябрь 04, 2018, 19:48 »


пример годного дизайна - ася.


Пример хренового дизайна, вообще-то.
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #129 : Сентябрь 04, 2018, 19:48 »

вы осознаете, что противоречите здравому смыслу?
Вовсе нет. Ассинхронка не имеет ничего общего с многопоточкой. И никогда с ее помощью не реализовалась.
Записан
Авварон
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3260


Просмотр профиля
« Ответ #130 : Сентябрь 04, 2018, 19:51 »

и о боже, это и есть многопоточка, Карл!

Юзерский поток тут один (как и процесс).

То, что ядро работает в другом процессе нас волновать как бы не должно.

Так можно сказать, что любое приложение, юзающее системный вызов (read, например), многопоточно.
Записан
ssoft
Программист
*****
Offline Offline

Сообщений: 584


Просмотр профиля
« Ответ #131 : Сентябрь 04, 2018, 21:07 »

а асинхронный ввод/вывод конечно же реализуется не на многопоточке, да?
Нет. Асинхронка может работать и в одном потоке.

вы осознаете, что противоречите здравому смыслу?

Асинхронность и многопоточность никак не связаны друг с другом. Обычно говорят об их ортогональности.
Программа может работать в их любом сочетании:

  • Асинхронно однопоточно
  • Синхронно однопоточно
  • Асинхронно многопоточно
  • Синхронно многопоточно
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #132 : Сентябрь 05, 2018, 06:04 »

да все тоже самое практически.
только сигналы не нужны.
пихай коллбек, который будет отрисовывать прогресс.
вернет фальш - копирование завершиться.
Вы что, правда думаете что можно вот так, не снимая грязных тапок, выполнять код другой нитки?

вот такой дизайн вымораживает:
Код:
fc->moveToThread(&mThread);

перевожу на русский: "сношай меня в отдельном треде"
вот сколько всяких моделей (винапи, сдл, позикс, etc)
до такого бреда только кутя додумалась.
Ну вот зачем бросаться такими заявлениями если, как все уже видели, ответить за них Вам совершенно нечем? Внимательное изучение архитектуры Qt классов даст намного больше для понимания плюсов чем бестолковое всасывание синтаксического сахара std.

Что плохого Вы видите в том что объекты имеют принадлежность к ниткам (их eventLoop'ам)? Это как-то не укладывается в Ваши теперешние понятия? Так может их-то и надо расширить? Улыбающийся Ведь "детский лепет" (мягко говоря) с callback'ами просто неудобно слушать. У меня вообще впечатление что пока Вы рады "запуску нитки", а с остальными вещами еще и не сталкивались.

Третий раз на пишу - на момент написания QThread другого способа НЕ БЫЛО, а ваш хваленый стд ни тредов не имел, ни анордеред мапы.
Аналог std::function написать было нельзя потому что компиляторы не умели в шаблоны нормально.
Не надо "оправдываться". Что изменилось что std там что-то "заимел"? Серьезные вещи не решаются цыганщиной типа std::function, нужна глубоко продуманная архитектура, взаимодействие классов. В Qt все это есть, а в std нет и не было, то так - какой ф-цией поудобнее тыцнуть, там-сям строку сэкономить. Мелкотемье/мелкочленье.

Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #133 : Сентябрь 05, 2018, 09:33 »

В Qt все это есть, а в std нет и не было
Более того и не будет никогда. Потому что std это стандартная библиотека C++, которая не должна диктовать разработчику как ему взаимодействовать между нитками. Она предоставляет ему нижний уровень, на котором разработчик может реализовать удобные для него и задачи механизмы взаимодействия.
А высокоуровневые механизмы уже реализуются в отдельных библиотеках, построенных на std. Для тех кто не может сам написать удобные и эффективные механизмы, существует множество сторонних библиотек (asio одна из них), в них есть все необходимое.
Записан
_Bers
Бывалый
*****
Offline Offline

Сообщений: 486


Просмотр профиля
« Ответ #134 : Ноябрь 29, 2018, 11:16 »

а асинхронный ввод/вывод конечно же реализуется не на многопоточке, да?
Нет. Асинхронка может работать и в одном потоке.

вы осознаете, что противоречите здравому смыслу?

Асинхронность и многопоточность никак не связаны друг с другом. Обычно говорят об их ортогональности.
Программа может работать в их любом сочетании:

  • Асинхронно однопоточно
  • Синхронно однопоточно
  • Асинхронно многопоточно
  • Синхронно многопоточно

у них дизайн одинаковый.

простой вопрос:
в чем принципиальное различие между стилями программирования:
"асинхронным однопоточным" и "синхронным многопоточным"?

простой ответ:
принципиальной разницы не существует.

меня удивляет, что находятся персонажи, которые этого не догоняют.
и начинают нести всякий бред про "асинхронку в одном потоке, и epoll, который пинает евент луп"

учитывая, что система, о боже! однопоточная, эвент луп у них, наверное,
в сферическом вакууме крутиццо.



Записан
Страниц: 1 ... 7 8 [9] 10 11 ... 17   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.127 секунд. Запросов: 23.